Swift part9 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8b3c-/6Y/)
2016/10/18(火) 11:34:44.16ID:oLo879ze0関連スレ
プログラミング言語Swift 3
http://potato.2ch.net/test/read.cgi/mac/1408762479/
[SDK]iPhoneアプリ開発初心者質問箱47[touch][iPad]
http://potato.2ch.net/test/read.cgi/mac/1470902093/
Xcode part14
http://potato.2ch.net/test/read.cgi/mac/1476190499/
Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/
前スレ
Swift part8
http://echo.2ch.net/test/read.cgi/tech/1463149806/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0583デフォルトの名無しさん (ワッチョイ ffc9-mu6I)
2017/01/19(木) 20:32:11.50ID:VasCiZ4n0ただ、SwiftはKotlinのoptional, Rustのif letを言語仕様でパクってあってコーディングが楽
この部分だけObjCにバックポートしたら便利なんじゃね?とふと思った
__nullable, __nonnullとか微妙なキーワードによるバックポートは正直使いづらい
0584デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/19(木) 22:19:36.62ID:w+bE5wHza0585デフォルトの名無しさん (オイコラミネオ MMff-Taza)
2017/01/20(金) 15:40:14.18ID:ZOjl9uXaM0586デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/20(金) 16:00:12.37ID:is3Fha3paって感じでいいんじゃね
0587デフォルトの名無しさん (JP 0H87-Taza)
2017/01/20(金) 16:35:51.58ID:6bMM3T6GH0588デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/20(金) 17:08:41.66ID:is3Fha3paということで
0589デフォルトの名無しさん (スップ Sd1f-ddg/)
2017/01/20(金) 18:43:31.96ID:2Wi9HN+wd男か女か解らない人がいるんだけれど、喉仏が出ているから、男って事で。
みたいな?
0590デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
2017/01/20(金) 19:05:32.26ID:4nNA4c16p実際問題、プログラミング知識が乏しいと
型推論と型宣言と動的型を区別できないから説明省いて良いと思う
0591デフォルトの名無しさん (ワッチョイ 738f-ILNu)
2017/01/20(金) 22:51:19.05ID:/kNqqxub00592デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/20(金) 23:13:59.78ID:sVl+H8Xfa0593デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/20(金) 23:59:07.88ID:sVl+H8Xfaって感じで同じ型の変数に値を一気に代入できないのは不便だよね
0594デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
2017/01/21(土) 01:50:38.98ID:d82h9KNNp0595デフォルトの名無しさん (ワッチョイ 6f5b-JNK/)
2017/01/21(土) 01:51:05.02ID:W/zpHkC+00596デフォルトの名無しさん (ササクッテロロ Sp87-UhX6)
2017/01/21(土) 02:08:12.56ID:wL4zqwoRp0597デフォルトの名無しさん (オッペケ Sr87-+PXi)
2017/01/21(土) 19:37:18.34ID:aueqPNmbrつまりc++が最強?
0598デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/23(月) 21:45:03.95ID:RV5yVqC700599デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/23(月) 21:59:18.58ID:RV5yVqC70例えばビューのカスタムクラス作って、そこのポップアップボタンとかのアイテムにセレクターつけるとするじゃん。
そんでそのクラスのインスタンスをペアレントのビューに複数おいてどれかのアイテムクリックすると、
別のインスタンスのセレクタが呼ばれちゃわね?二つ目のインスタンスのボタン押したのに、一つ目に反映されたりする。
このカスタムクラス複数インスタンス化においてのNotificationとか、selectorとかで困ってんの、どうやって回避する?
0600デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/23(月) 22:05:37.88ID:WrhQGC6sa俺のエスパー能力が正確なら、Outlet Collectionでググるといいかもしれない
0601デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/23(月) 22:06:59.56ID:WrhQGC6saやっぱエスパーさんの登場を待とう
0602デフォルトの名無しさん (ワッチョイ f35b-jh1Y)
2017/01/23(月) 22:11:15.46ID:Llx+8S3H0俺も何いってるのか?
さっぱりだわぁ
0603デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/23(月) 22:26:13.92ID:RV5yVqC70ググってくるわーthx
0604デフォルトの名無しさん (ワッチョイ 33a1-U6eW)
2017/01/23(月) 22:26:58.66ID:sPzCf4bI00605デフォルトの名無しさん (ワッチョイ c33c-3qL8)
2017/01/23(月) 22:29:39.75ID:Ws+iSkNs0UIViewControllerでなくUIViewを継承
0606デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/23(月) 22:35:00.65ID:RV5yVqC70NSMenuItemからいくと、postじゃなくてaction限定になってるんじゃないかな?限定的でスマソンだけど
>>605
OSXでNSViewを継承
0607デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/23(月) 22:44:47.72ID:RV5yVqC70あとNameもインスタンスだと同じになって別のインスタンスが呼ばれちゃう。
でもこれは登録する時にNameにインデックスとか何らかIDつけると回避できそうな気がするけど、メニューアイテムだと
menu?.addItem(NSMenuItem.init(title: name , action: #selector(selected(_:)), keyEquivalent: ""))
みたいな感じで付け入る隙がないんだ
0608デフォルトの名無しさん (ワッチョイ 6f5b-JNK/)
2017/01/23(月) 22:54:40.36ID:wkYluZkM00609デフォルトの名無しさん (ワッチョイ c33c-ddg/)
2017/01/23(月) 23:00:43.39ID:d7Gq4/N70「ポップアップボタンとか」の「とか」は、「ポップアップボタン」以外の何?
そもそもAppleは、ポップアップボタンなんてものは提供していないがな。
それにiOSでは、クリックなんかはできない。
HumanInterfaceGuidelinesを読み直して出直した方が良いな。
0610デフォルトの名無しさん (ワッチョイ 9339-u5as)
2017/01/24(火) 00:55:51.35ID:exkLo0yv0こういうことしたい時はどうすればいいんでしょう
Cで
for(i = 'a'; i <= 'z'; i++){
putchar(i & 0x5f);
}
putchar('\n')
みたいなのを swiftで書く場合って…
for i in ???...??? {
もうわからん
}
0611デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 01:24:22.63ID:6XEtipUUaくんな感じ?
for ch in "a".utf8.first!..<"z".utf8.first! {
print(Character(UnicodeScalar(ch & 0x5f)))
}
もっとスマートな書き方があるかも知らん
0612デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/24(火) 01:33:52.81ID:7WmLdbGx0let str = "abcdefghijklmnopqrstuvwxyz"
for c in str.characters{
print(c)
}
がんばれ
0613デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 01:43:19.82ID:6XEtipUUaそれ文字列の中を順に表示してるだけじゃん
0614デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/24(火) 01:56:29.31ID:7WmLdbGx0これ何で大文字になんの?
0615デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/24(火) 01:57:25.69ID:7WmLdbGx0>>611の間違い
0616デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 02:07:07.07ID:6XEtipUUa0617デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 02:10:03.40ID:6XEtipUUafor val in UnicodeScalar("a").value...UnicodeScalar("z").value
{
print(String(format: "%c", val).uppercased())
}
0618デフォルトの名無しさん (スッップ Sd1f-JNK/)
2017/01/24(火) 02:22:36.10ID:kY6N+f51dクッソ読みにくいな
さすがSwift()だわ
0619デフォルトの名無しさん (ワッチョイ c33c-ddg/)
2017/01/24(火) 05:59:43.55ID:odFyaWZN0何だ?Asciiコードって。
SUICAカード
電球の球
頭痛が痛い
地震が揺れた
0620デフォルトの名無しさん (ワッチョイ 9339-u5as)
2017/01/24(火) 07:47:42.37ID:exkLo0yv0>>611
ワイの求めていたものに近い
見てたら意味的には
>>617のがよさげ
別に小文字を大文字にしたいわけじゃなくて
文字コードを数値で扱いたく
かつ数値を文字にしたかった
例えば大量のテストデータを自動生成するとか
発想が Cなので、そういうやり方しか思いつかないんだけど
手段にたどりつけないで試行錯誤してます
0621デフォルトの名無しさん (ワッチョイ 9339-u5as)
2017/01/24(火) 07:50:49.58ID:exkLo0yv0それは思いついたけどスマートじゃないと思った
例えばその "a-z" の文字列を生成したい時にどうするかというのが気になった
Cなら例えば
atoz = malloc('z' - 'a' + 2);
p = atoz;
for(c = 'a'; c <= 'z'; c++) {
*p++ = c;
}
*p = 0
ってできるじゃん
それを "abc...z" って26文字ぐらいならベタで書けるけど
これを "aa"〜"zz"までとか量が増えて行ったら
ベタでは書けないなぁとか。
てかなんで for ch in 'a'...'z' って書けないんだよ
それぐらいやらせてくれよ
0622デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
2017/01/24(火) 10:19:40.46ID:PbjuVM+3p万が一、将来AaBbC...yZzって並ぶ文字コードが世界標準になったら
'a'...'z'が書ける言語仕様にしてたらどうすればいいか分かんないじゃん
これは極端な例だけど、要はそういう不意の事象に耐える意識高い言語仕様にswiftはなってる
0623デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 10:32:22.93ID:8WMehL2Va今更文字コード変えられたら、どっちみちコンパイルし直しになるし
どんだけ既存のプログラムに影響出るんだよw
0624デフォルトの名無しさん (ワッチョイ ff4c-Taza)
2017/01/24(火) 10:52:16.06ID:bcJOEpSP00625デフォルトの名無しさん (ワッチョイ c33c-3qL8)
2017/01/24(火) 11:01:02.71ID:HBr+KooL0>文字コードを数値で扱いたく かつ数値を文字にしたかった
一応部品化すれば本処理部分は多少は見やすく・・・
func irange(_ a:UnicodeScalar, _ b:UnicodeScalar) -> CountableClosedRange<UInt32> {
return a.value...b.value
}
func nchr(_ a:UInt32) -> UnicodeScalar {
return UnicodeScalar(a) ?? "?"
}
for i in irange("a", "z") {
print(nchr(i & 0x5F))
}
0626デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
2017/01/24(火) 11:16:48.70ID:PbjuVM+3pソースファイルの話ならjavac -encodingみたいに対応すればいい
ランタイム内はそれが変動出来るようにString.utf8やUnicodeScalarがある
ソースファイルの文字コードに影響されるってC言語かよw
0627デフォルトの名無しさん (ワッチョイ 335b-wAZW)
2017/01/24(火) 12:08:53.72ID:gy8Md2CU00628デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 12:14:47.00ID:8WMehL2Vaどんな言語だって困るだろ
文字コードの大小に依存してるコードなんてごまんとあるぞ
0629デフォルトの名無しさん (ワッチョイ c33c-M+yL)
2017/01/24(火) 17:34:40.36ID:+WwPKdrl0https://kotobank.jp/word/%E3%81%A8%E3%81%8B-582055#E3.83.87.E3.82.B8.E3.82.BF.E3.83.AB.E5.A4.A7.E8.BE.9E.E6.B3.89
0630デフォルトの名無しさん (ワッチョイ 9339-u5as)
2017/01/24(火) 19:57:41.91ID:exkLo0yv0イイね
ただ大文字化したいというよりは
こういった基本的な処理を身に着けたい
今まで Cや Perlでやってたことが
swiftでもできたらなぁって感じ
できないと俺の寿命がストレスでマッハ
0631デフォルトの名無しさん (スッップ Sd1f-JNK/)
2017/01/24(火) 21:29:28.75ID:6Rgy6vgTd0632デフォルトの名無しさん (アウアウウー Sa67-WaXM)
2017/01/24(火) 21:47:34.41ID:KTC1YGyNa0633デフォルトの名無しさん (ワッチョイ a3d4-hfv1)
2017/01/24(火) 22:31:37.74ID:GRF78Bhf00634デフォルトの名無しさん (ワッチョイ cf42-3qL8)
2017/01/24(火) 22:35:46.17ID:L2GKKZjf00635デフォルトの名無しさん (ワッチョイ a3d4-hfv1)
2017/01/24(火) 22:50:13.02ID:GRF78Bhf00636デフォルトの名無しさん (ワッチョイ ffc9-NwiU)
2017/01/24(火) 23:30:23.92ID:Khh2743H0extension UnicodeScalar : Strideable {
public func advanced(by n: Int) -> UnicodeScalar {
return UnicodeScalar(self.value.advanced(by: n))!
}
public func distance(to other: UnicodeScalar) -> Int {
return other.value.distance(to: self.value)
}
}
extension UnicodeScalar : BitwiseOperations {
public static var allZeros: UnicodeScalar = UnicodeScalar(UInt32.allZeros)!
public static func &(lhs: UnicodeScalar, rhs: UnicodeScalar) -> UnicodeScalar {
return UnicodeScalar(lhs.value & rhs.value)!
}
public static func ^(lhs: UnicodeScalar, rhs: UnicodeScalar) -> UnicodeScalar {
return UnicodeScalar(lhs.value ^ rhs.value)!
}
public static func |(lhs: UnicodeScalar, rhs: UnicodeScalar) -> UnicodeScalar {
return UnicodeScalar(lhs.value | rhs.value)!
}
public static prefix func ~(rhs: UnicodeScalar) -> UnicodeScalar {
return UnicodeScalar(~rhs.value)!
}
}
for c in UnicodeScalar("a")...UnicodeScalar("z") {
print(c & UnicodeScalar(0x5f)!)
}
0637デフォルトの名無しさん (アウアウウー Sa67-WaXM)
2017/01/25(水) 08:50:03.50ID:WD3nSRWWaもうC言語でいいわ
0638デフォルトの名無しさん (エムゾネ FF1f-JNK/)
2017/01/25(水) 09:06:42.63ID:Xv7wslg5F基本読みにくいんだよなSwift
0639デフォルトの名無しさん (ワッチョイ c33c-3qL8)
2017/01/25(水) 10:23:43.05ID:2+5m68360結局リテラルがアレなんだよな
型指定しないとStringになるから俺はStrideable断念して引数使ったけど
シングルクォートのリテラルを言語仕様に入れなかった理由がよく分からない
0640デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
2017/01/25(水) 10:39:46.63ID:+ZiK5CtYp古い言語にならってASCIIを想像する人もいれば、今時ならUTF8だと想像する人もいるだろうし、フレームワークに合わせてUnicodeと言う人もいる
落とし所のない不毛な議論が目に見えるから、検討したけど削除した仕様な気がする
0641デフォルトの名無しさん (ワッチョイ c33c-3qL8)
2017/01/25(水) 11:04:36.57ID:2+5m68360既にUnicodeに盛大に引っ張られてる気もする
let c = Character("あ" + "゚")
まぁ何らかの検討はあったんだろうけど・・・
0642デフォルトの名無しさん (ワッチョイ 734c-JNK/)
2017/01/25(水) 20:41:52.96ID:RfIl6u1t00643デフォルトの名無しさん (アウアウウー Sa67-WaXM)
2017/01/25(水) 20:56:49.37ID:xQi6cekNa0644デフォルトの名無しさん (スプッッ Sd1f-CBoF)
2017/01/25(水) 21:09:38.61ID:d9MKwq+md0645デフォルトの名無しさん (ワッチョイ 1342-3qL8)
2017/01/25(水) 22:58:32.84ID:CYUx5EoW0Java
Java
Java
Java
0646デフォルトの名無しさん (ワッチョイ 1342-3qL8)
2017/01/25(水) 23:07:52.05ID:CYUx5EoW00647デフォルトの名無しさん (ワッチョイ 1342-3qL8)
2017/01/25(水) 23:12:20.50ID:CYUx5EoW0Swift字数おおくないか
ライブラリの名前がいちいち長ったらしいし
関数に引数の名前2つがデフォとかげんなりするし
try!に至ってはもう
0648デフォルトの名無しさん (ワッチョイ 0f4c-2P18)
2017/01/26(木) 01:40:32.20ID:9A8WN5h/0そ、そうね…
落ち着いて考えるとCで簡潔に書けることも長ったらしいし、それでいて読みにくい
Swiftって一体どこがいいんだろう…
0649デフォルトの名無しさん (ワッチョイ 2b10-Ve17)
2017/01/26(木) 02:37:16.34ID:dAEo4WV40obj.doSomething(true, false, true)みたいなやつ
標準APIだとそういうのは良くないってわかってるのかあんまりないけど、誰かが適当に作ったライブラリだとそんなのがよく出てくる気がする
0650デフォルトの名無しさん (スッップ Sdca-2P18)
2017/01/26(木) 03:07:53.57ID:26kSGCXVdクソ過ぎやしないか?
Objective-Cのままでいいわまじで
0651デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/26(木) 07:35:18.87ID:8RDF259k0それとクロージャ構文にプレフィックスが不要なところも
代わりにスコープブロックにdoが必要だけど2文字は許容範囲内
0652デフォルトの名無しさん (ワッチョイ 7e0d-Spol)
2017/01/26(木) 08:13:25.19ID:O9H7zUJg0Stringのメンバを見るとCharacterとUnicodeScalarは同列っぽいよ
どちらもUnicodeを内部エンコードに扱ってるからそれらはUnicode依存のフレームワークの様子だけど
同じ層にUTF8, UTF16もいるからいつかCharacterUTF8, UTF8Scalarみたいな構造体もできるかもなw
0653デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/26(木) 09:33:06.97ID:8RDF259k0String.initに格差があってね
この差も疑問なんだけど
let ca:[Character] = ["a", "b", "c"]
let ua:[UnicodeScalar] = ["a", "b", "c"]
let cs = String(ca)
let us = String(ua) //これが出来ない
let us = String(ua.map(Character.init)) //これは出来る
0654デフォルトの名無しさん (アウアウウー Sa7f-4cPM)
2017/01/26(木) 10:39:40.20ID:k8NBikxqavarとletの明確な使い分けも、それがない言語だと逆にモヤッとする
0655デフォルトの名無しさん (ワッチョイ 6ac9-P4zY)
2017/01/26(木) 10:57:10.28ID:KCQLgRNZ0今ちょうどSwift4でStringどうするか議論の真っ最中だから
0656デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)
2017/01/26(木) 11:04:45.63ID:CKOy8ZWqp>>653もCharacterとUnicodeScalarをまとめた上位インターフェース作るだろ(適当
0657デフォルトの名無しさん (オイコラミネオ MM76-bF0B)
2017/01/26(木) 11:10:44.87ID:NOZ2YrK+M言葉で説明するのは難しいですわ
nilチェックして強制アンラップでもいいだろって思われそう
どう思う?
0658デフォルトの名無しさん (オイコラミネオ MM76-bF0B)
2017/01/26(木) 11:15:35.23ID:NOZ2YrK+MAppleのリファレンスは説得力あるわ
0659デフォルトの名無しさん (ワッチョイ 1b3c-R94c)
2017/01/26(木) 23:16:58.81ID:ufLIfALs0初心者だから全然想像できん
0660デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)
2017/01/27(金) 08:27:01.41ID:Zy0rRYCMp定期乙
0661デフォルトの名無しさん (ワッチョイ 6f5b-ci5U)
2017/01/27(金) 17:31:32.73ID:MVo+YM4y0俺は重宝してるけど。
_ = someMethod()
0662デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)
2017/01/29(日) 13:24:08.53ID:MpcYD/kypいつ変わったんだ、便利じゃねーか
0663デフォルトの名無しさん (ワッチョイ 833c-T3y8)
2017/01/29(日) 14:08:41.99ID:PyqVv5fH0宣言じゃなくて、定義じゃね?
0664デフォルトの名無しさん (ワッチョイ 9733-4cPM)
2017/01/29(日) 15:05:33.45ID:3Y3DXVvV00665デフォルトの名無しさん (ササクッテロラ Sp13-4cPM)
2017/01/29(日) 15:25:26.09ID:yL6xb8U5p0666デフォルトの名無しさん (ワッチョイ 833c-T3y8)
2017/01/29(日) 17:02:22.62ID:PyqVv5fH00667デフォルトの名無しさん (スッップ Sdca-2P18)
2017/01/29(日) 17:03:21.38ID:htBmfO4kd0668デフォルトの名無しさん (アウアウウー Sa7f-4cPM)
2017/01/29(日) 17:19:12.25ID:EnysbUOea0669デフォルトの名無しさん (ワッチョイ 9739-4eSF)
2017/01/30(月) 07:33:20.34ID:qYAaUQoA0引数にラベルが必須でないというのは
可読性の確保という面で
選択肢として存在するのはアリだと思うな
0670デフォルトの名無しさん (ワッチョイ 2b8c-EfrK)
2017/01/30(月) 08:01:35.96ID:Jmyw1tRr0ObjCみたいにC APIだけは別の表記するならいいけどさ
0671デフォルトの名無しさん (スップ Sdca-eBhG)
2017/01/30(月) 09:17:47.99ID:djGawl3Pd最近の次世代言語は関数型ばかりだからswiftが最後の希望や
0672デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/30(月) 17:37:30.67ID:5ceKaohv0DictionaryのValueをOptionalにした場合の
削除とnil設定のオーバーロード区別
http://swiftlang.ng.bluemix.net/#/repl/588ef6a306f99d213b3a7f3a
0673デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/30(月) 20:30:32.06ID:5ceKaohv0http://swiftlang.ng.bluemix.net/#/repl/588f20efcf58891f104c975c
どちらにも言えることだけど
意味的に異なるオーバーロードがあると厄介
0674デフォルトの名無しさん (ワッチョイ 9733-4cPM)
2017/01/31(火) 08:04:31.17ID:TojTxigN0仕様ころころしててイライラしてるんだけど
0675デフォルトの名無しさん (スプッッ Sd6a-eBhG)
2017/01/31(火) 09:09:51.57ID:qlhVwcaGd0676デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)
2017/01/31(火) 10:07:32.51ID:Wlpmu9Pop破壊変更がないとしてもだ
なんで詳細Swiftなんて買ったと言わざるをえない
Qiitaで直近の記事を漁った方がよほど有効だろうよ
0677デフォルトの名無しさん (ワッチョイ afc9-4cPM)
2017/01/31(火) 10:44:07.96ID:IISx8Cj70keySortedメソッドの引数
by:(Key,Key)->Bool
がよく判りません。
Key型を要素とするタプルを取ってBoolを返すclosure byって意味なんだと思いますが、Key型ってなんですか?
0678デフォルトの名無しさん (アウアウウー Sa7f-4cPM)
2017/01/31(火) 10:57:03.39ID:13oBEuV5a引数を2つとってBoolを返すクロージャだろ
0679デフォルトの名無しさん (オイコラミネオ MM76-bF0B)
2017/01/31(火) 11:38:05.84ID:5xUQa1EZM0680デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/31(火) 12:46:54.40ID:E6Yo5vL90ジェネリクスの型パラメータ名
http://swiftdoc.org/v3.0/type/Dictionary/
> struct Dictionary<Key : Hashable, Value>
extensionの中では元定義にある型パラメータ(Key, Value)や
Associated Types(Element, Indexなど)が使える
[Int:Int?] は Dictionary<Int,Int?> の糖衣構文
0681デフォルトの名無しさん (ワッチョイ afc9-4cPM)
2017/01/31(火) 14:26:38.67ID:IISx8Cj70納得です。
ジェネリクスの型パラメータなんですね!
それでも、こう書くとコンパイルできない。なんでだ?
func keySorted(by:(Key, Key)->Bool) -> [(Key,Value)] {a, b in
return self.sorted{by(a.key,b.key)}
0682デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/31(火) 14:49:05.08ID:E6Yo5vL901つ目の{は関数本体の始まり、2つ目の{がクロージャー
func keySorted(by:(Key, Key)->Bool) -> [(Key,Value)] {
return self.sorted {a, b in
by(a.key, b.key)
}
}
■ このスレッドは過去ログ倉庫に格納されています