WWDC2014で発表されたAppleの新言語Swiftについて語りましょう
関連スレ
プログラミング言語Swift Part4
http://potato.2ch.net/test/read.cgi/mac/1484763495/
[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad]
http://potato.2ch.net/test/read.cgi/mac/1484217623/
Xcode part14
http://potato.2ch.net/test/read.cgi/mac/1476190499/
Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/
前スレ
Swift part9
http://echo.2ch.net/test/read.cgi/tech/1476758084/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
Swift part10 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 3b3c-eq+O)
2017/02/20(月) 10:00:13.40ID:ChbPWtRt0349デフォルトの名無しさん (ワッチョイ 4b3c-HE/W)
2017/04/14(金) 00:10:47.26ID:CJipXrOe0 Rust inspiredとのことだからunique_ptrなんてレベルじゃない
ライフタイムかそれに類するものを導入する気だろう
ライフタイムかそれに類するものを導入する気だろう
350デフォルトの名無しさん (ワッチョイ 1f3c-xLT8)
2017/04/17(月) 11:21:13.44ID:rZd85UOy0 Swift4で何がかわりそうなのか
ttp://qiita.com/d_date/items/b3562f542afc306791ce
ttp://qiita.com/d_date/items/b3562f542afc306791ce
351デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
2017/04/17(月) 11:34:40.27ID:H6wmE3lW0 SE-0110
Swift3.1
let fn1: (Int, Int) -> Void = { x in
// some procedure
}
Swift4
let fn1: ((Int, Int)) -> Void = { x in
// some procedure
}
Intを要素とするtupleを引数に取るclosureの記述方法が、変わるらしい。
(Int, Int)型引数は、((Int, Int))としてx.0, x.1って感じでアクセスする。ってこった。
Swift3.1
let fn1: (Int, Int) -> Void = { x in
// some procedure
}
Swift4
let fn1: ((Int, Int)) -> Void = { x in
// some procedure
}
Intを要素とするtupleを引数に取るclosureの記述方法が、変わるらしい。
(Int, Int)型引数は、((Int, Int))としてx.0, x.1って感じでアクセスする。ってこった。
352デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
2017/04/17(月) 11:41:37.59ID:H6wmE3lW0 func curry<A, B, C>(_ f: @escaping (A, B) -> C) -> (A) -> (B) -> C {
return { x in
{ y in f(x, y) }
}
}
この関数の読み方が判らん!
戻り値が
(A) -> (B) -> C
って事は、
1. A型の引数を受け取り、(B) -> Cなるclosureを返すclosureが戻り値
2. (A) -> (B)なるclosureを受け取りC型を返すclosureが戻り値
どっちだ?
return { x in
{ y in f(x, y) }
}
}
この関数の読み方が判らん!
戻り値が
(A) -> (B) -> C
って事は、
1. A型の引数を受け取り、(B) -> Cなるclosureを返すclosureが戻り値
2. (A) -> (B)なるclosureを受け取りC型を返すclosureが戻り値
どっちだ?
353デフォルトの名無しさん (スプッッ Sd3f-IVUN)
2017/04/17(月) 12:20:26.64ID:vkFfzl9Jd354デフォルトの名無しさん (ワッチョイ fbf9-kKgC)
2017/04/17(月) 16:19:08.73ID:3GD20cJp0 >>352
1の方だね
1の方だね
355デフォルトの名無しさん (ワッチョイ eb92-D+C1)
2017/04/17(月) 17:25:42.88ID:D/VW2xRY0 もういい加減にしてほしいな
言語ヲタが「ボクチンが考えた最高の言語」遊びしてるようにしか見えない
言語ヲタが「ボクチンが考えた最高の言語」遊びしてるようにしか見えない
356デフォルトの名無しさん (ワッチョイ 1ff3-vZSP)
2017/04/17(月) 18:59:19.87ID:nd1F7ywi0 批判なら具体的に
でなければアンチスレへ
でなければアンチスレへ
357デフォルトの名無しさん (アウアウオー Sabf-vZSP)
2017/04/17(月) 19:03:02.31ID:kDXw+CZ7a ->が出てきたらその時点で->より前が引数、->より後ろが戻り値
358デフォルトの名無しさん (ワッチョイ 5b54-axuq)
2017/04/17(月) 20:39:28.09ID:oD+wMWyY0359デフォルトの名無しさん (ワッチョイ 5b54-axuq)
2017/04/17(月) 20:40:25.07ID:oD+wMWyY0360デフォルトの名無しさん (アウアウウー Saaf-vZSP)
2017/04/17(月) 20:46:01.79ID:lXU86btga ヒマなんですね
361デフォルトの名無しさん (エムゾネ FF3f-IVUN)
2017/04/17(月) 21:24:11.38ID:6RZC9xguF >>354
まあ、curry化ってそういうものだしね
まあ、curry化ってそういうものだしね
362デフォルトの名無しさん (アウアウウー Saaf-vZSP)
2017/04/17(月) 21:25:12.82ID:lXU86btga インド人もびっくりだよね
363デフォルトの名無しさん (ワッチョイ 4b3c-5IwN)
2017/04/17(月) 22:47:26.87ID:+gxNPbQK0364デフォルトの名無しさん (ワッチョイ 3b0f-n2Cn)
2017/04/17(月) 23:10:09.48ID:/M+7HM4c0 >>350
いいからさっさと++、--、for(;;)を復活させろ
いいからさっさと++、--、for(;;)を復活させろ
365デフォルトの名無しさん (ワッチョイ 3b0f-n2Cn)
2017/04/17(月) 23:10:51.44ID:/M+7HM4c0366デフォルトの名無しさん (ササクッテロラ Sp6f-+fOQ)
2017/04/18(火) 00:02:25.56ID:xQgWcwpBp >>355は4で破壊変更あることを今更知ったnewbieじゃないかな
破壊しないswiftなんてswiftじゃないと思って使ってるけど、3で安定したと思っちゃった子はそこそこいそう
破壊しないswiftなんてswiftじゃないと思って使ってるけど、3で安定したと思っちゃった子はそこそこいそう
367デフォルトの名無しさん (ワッチョイ 3b0f-bNqD)
2017/04/18(火) 00:31:05.68ID:nxzSbT3m0 >>355
こんなぶれぶれの独善言語についてってる奴の気が知れんわ
こんなぶれぶれの独善言語についてってる奴の気が知れんわ
368デフォルトの名無しさん (アウアウウー Saaf-vZSP)
2017/04/18(火) 00:36:29.63ID:84Yej/faa そんな言語のスレをヲチしてるお前もなー
369デフォルトの名無しさん (ワッチョイ fbf9-kKgC)
2017/04/18(火) 10:13:46.23ID:GdlQD+8N0 型表記中の「->」は右結合ってことでいいんだよね?
370デフォルトの名無しさん (ワッチョイ 1ff3-vZSP)
2017/04/18(火) 12:14:40.44ID:Q87oUFLG0 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Types.html#//apple_ref/swift/grammar/function-type
If a function type includes more than a single arrow (->), the function types are grouped from right to left.
For example, the function type (Int) -> (Int) -> Int is understood as (Int) -> ((Int) -> Int)
―that is, a function that takes an Int and returns another function that takes and returns an Int.
引数は必ず()で囲まないといけないから、もし ((Int) -> (Int)) -> Int なら前半の()が必須
そういう意味でも (Int) -> ((Int) -> Int) としか解釈できない
If a function type includes more than a single arrow (->), the function types are grouped from right to left.
For example, the function type (Int) -> (Int) -> Int is understood as (Int) -> ((Int) -> Int)
―that is, a function that takes an Int and returns another function that takes and returns an Int.
引数は必ず()で囲まないといけないから、もし ((Int) -> (Int)) -> Int なら前半の()が必須
そういう意味でも (Int) -> ((Int) -> Int) としか解釈できない
371デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
2017/04/18(火) 12:45:37.54ID:3Ay0w4VK0 >>370
THX
原則は、
1. 引数は()で囲む。囲まないと、error: require parentheses
2. 右から左方向へグループ化
例:
(S) -> (T) -> (U)
は
(S) -> ((T) -> (U))
と解釈される。
THX
原則は、
1. 引数は()で囲む。囲まないと、error: require parentheses
2. 右から左方向へグループ化
例:
(S) -> (T) -> (U)
は
(S) -> ((T) -> (U))
と解釈される。
372デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
2017/04/18(火) 12:47:38.45ID:3Ay0w4VK0 Reactive.itemsメソッドがこんな感じ
public func items<S: Sequence, Cell: UICollectionViewCell, O : ObservableType>
(cellIdentifier: String, cellType: Cell.Type = Cell.self)
-> (_ source: O)
-> (_ configureCell: @escaping (Int, S.Iterator.Element, Cell) -> Void)
-> Disposable where O.E == S {
以下略
public func items<S: Sequence, Cell: UICollectionViewCell, O : ObservableType>
(cellIdentifier: String, cellType: Cell.Type = Cell.self)
-> (_ source: O)
-> (_ configureCell: @escaping (Int, S.Iterator.Element, Cell) -> Void)
-> Disposable where O.E == S {
以下略
373デフォルトの名無しさん (ササクッテロラ Sp6f-+fOQ)
2017/04/18(火) 13:01:42.04ID:XspPM/3op 右から左方向が優先度高いのか
左から右に流してるイメージで逆方向のがしっくりくるが
関数型の思想としてそういうものだっけかな
左から右に流してるイメージで逆方向のがしっくりくるが
関数型の思想としてそういうものだっけかな
374デフォルトの名無しさん (アウアウウー Saaf-vZSP)
2017/04/18(火) 13:28:19.45ID:AUE9Rrcca 俺は若干右曲がり
375デフォルトの名無しさん (スプッッ Sd3f-bNqD)
2017/04/18(火) 20:55:52.53ID:L5MP9LYsd 可読性の高いSwift()
376デフォルトの名無しさん (ワッチョイ 1f3c-xLT8)
2017/04/18(火) 21:25:36.15ID:dlRGmA3w0377デフォルトの名無しさん (ササクッテロロ Sp6f-vZSP)
2017/04/18(火) 22:03:34.33ID:Cbc6ZCQLp Ojb-C使ってても毎年のようにAPIレベルでDeprecatedが量産されるから
Obj-Cなら変更コストが低いってわけでもない
Obj-Cなら変更コストが低いってわけでもない
378デフォルトの名無しさん (スプッッ Sd3f-IVUN)
2017/04/19(水) 10:54:38.73ID:aMVSfr6md379デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
2017/04/19(水) 11:22:12.10ID:2o4P71X40 >>378
let fn1: ((Int, Int)) -> Void = { x in
print(x.0 + x.1)
}
fn1((1,2)) // => 3
//fn1(1,2) // error: extra argument、引数が多すぎ!
let fn1: ((Int, Int)) -> Void = { x in
print(x.0 + x.1)
}
fn1((1,2)) // => 3
//fn1(1,2) // error: extra argument、引数が多すぎ!
380デフォルトの名無しさん (スプッッ Sd3f-IVUN)
2017/04/19(水) 12:18:48.30ID:aMVSfr6md >>379
ということは、元々括弧を省略した書き方をしなければ問題ないわけね
ということは、元々括弧を省略した書き方をしなければ問題ないわけね
381デフォルトの名無しさん (スプッッ Sd3f-bNqD)
2017/04/19(水) 20:19:15.30ID:Vhy+qJiMd Swiftの関数の書き方に近いシンタックスの言語ってある?
382デフォルトの名無しさん (ワッチョイ 1ff3-vZSP)
2017/04/19(水) 22:12:07.64ID:RnslI5DB0 たくさんある
383デフォルトの名無しさん (アウアウエー Sa82-p2Ky)
2017/04/20(木) 14:01:17.17ID:sKYAHXfOa たくさんあるかは分からんけど、Rustは比較的似てる気がする
Go とか Kotlin辺りもちょっと似てるかな
Go とか Kotlin辺りもちょっと似てるかな
384デフォルトの名無しさん (ササクッテロラ Sp23-G776)
2017/04/20(木) 14:07:23.48ID:Vb04xDKlp Java8も近い気がする
385デフォルトの名無しさん (ワッチョイ 4af3-p2Ky)
2017/04/20(木) 17:04:27.86ID:VpJy20l50 String再実装の第一弾と複数行文字列リテラルがレビュー通った
386デフォルトの名無しさん (ワッチョイ bff3-QkHB)
2017/04/21(金) 08:24:24.47ID:ZBCs1arm0387デフォルトの名無しさん (ワッチョイ 4af3-p2Ky)
2017/04/21(金) 12:37:01.73ID:PVM41qEx0 let json = """
{
"lang": "Swift"
}
""""
json == "{¥n ¥"lang¥": ¥"Swift¥"¥n}"
閉じ"""の行と同じインデントが自動的に削除される(行頭が閉じ"""に揃う)
便利
{
"lang": "Swift"
}
""""
json == "{¥n ¥"lang¥": ¥"Swift¥"¥n}"
閉じ"""の行と同じインデントが自動的に削除される(行頭が閉じ"""に揃う)
便利
388デフォルトの名無しさん (ササクッテロラ Sp23-p2Ky)
2017/04/21(金) 12:49:25.47ID:z0f2AZORp 発展途上の言語はどんどん便利になるからいいね
389デフォルトの名無しさん (ワッチョイ 7f54-ddVw)
2017/04/22(土) 08:43:07.39ID:kAxmCg/50 >>387
詳しく!
詳しく!
390デフォルトの名無しさん (ワッチョイ de92-UbXF)
2017/04/22(土) 15:30:44.86ID:z7G2zYcp0 こんなものが今頃入るとか発展途上すぎるんだよ
391デフォルトの名無しさん (アウアウエー Sa82-p2Ky)
2017/04/22(土) 15:35:08.08ID:PgVA7Plza Javaにはないけどな
Swiftのはインデントまで考慮されて洗練されてるし
Swiftのはインデントまで考慮されて洗練されてるし
392デフォルトの名無しさん (ワッチョイ de92-UbXF)
2017/04/22(土) 15:42:53.58ID:z7G2zYcp0 インデント考慮って逆に分かりづらくなるような気が。。。
Optionalもそうだと思うけどSwiftって一見便利そうに見えて却って面倒くさくなってる要素が多いと思う
Optionalもそうだと思うけどSwiftって一見便利そうに見えて却って面倒くさくなってる要素が多いと思う
393デフォルトの名無しさん (ワッチョイ 7f54-2dAw)
2017/04/22(土) 15:58:34.23ID:kAxmCg/50 >>392
あんまり、ルールが多くなると、C++みたく、不人気になるんだよねぇ。
あんまり、ルールが多くなると、C++みたく、不人気になるんだよねぇ。
394デフォルトの名無しさん (ササクッテロリ Sp23-G776)
2017/04/23(日) 12:04:02.69ID:OKIxwLfDp395デフォルトの名無しさん (ワッチョイ 8a3c-06LW)
2017/04/23(日) 13:12:37.68ID:PRvAU6qE0 >>393
今のSwiftも十分ルール多いと思うぞ
今のSwiftも十分ルール多いと思うぞ
396デフォルトの名無しさん (ワッチョイ 7f54-2dAw)
2017/04/23(日) 13:18:16.81ID:16+ithPZ0397デフォルトの名無しさん (ワッチョイ 7f54-2dAw)
2017/04/23(日) 13:20:20.98ID:16+ithPZ0 >>394
破壊的変更だけど、事前通告もあるし。。。will be depreridated. warningとか。
納得できる変更だし、改善方向に向かってるのでOK。
改悪とか、こんな機能、だれも使わんぜぇ。ってのが無いのでoK.
Windows 10の3D Paint Brush機能って必要か?
破壊的変更だけど、事前通告もあるし。。。will be depreridated. warningとか。
納得できる変更だし、改善方向に向かってるのでOK。
改悪とか、こんな機能、だれも使わんぜぇ。ってのが無いのでoK.
Windows 10の3D Paint Brush機能って必要か?
398デフォルトの名無しさん (ワッチョイ 270f-SXGp)
2017/04/23(日) 13:52:00.91ID:HtOZeUof0 Swiftって読みにくすぎ
ObjC 3.0でいいわまじで
政治的に生まれた言語はどこかで無理が生じる
ObjC 3.0でいいわまじで
政治的に生まれた言語はどこかで無理が生じる
399デフォルトの名無しさん (ワッチョイ 533c-p2Ky)
2017/04/23(日) 22:20:07.29ID:d5pkzuTb0 ObjCの方が読みづらいわ
読みづらいというより書きづらい…かな
読みづらいというより書きづらい…かな
400デフォルトの名無しさん (スプッッ Sd4a-mqxQ)
2017/04/24(月) 09:18:14.98ID:OVGIDxevd >>399
禿同
禿同
401デフォルトの名無しさん (ワッチョイ bff3-QkHB)
2017/04/24(月) 09:47:25.07ID:Et0GUfRD0 ObjC-2.1っての出してくれないかなぁ。
Swift2.x -> 3.xへの破壊的変更をObj-Cへも適用して欲しい。
たくさんあるinitializerをinit(xxx:)にまとめるとか、Foundation, AppKitにあるClassのメソッド名を洗練させるとか。
Foundation, AppKitって1980年代の設計のままだから、あの長いメソッド名を
ちょっとだけ短くするだけで、まだまだObj-Cは延命できそうな気がする。
Swift3.x見たく、メソッド名の短縮化をObj-Cへcome on!
Swift2.x -> 3.xへの破壊的変更をObj-Cへも適用して欲しい。
たくさんあるinitializerをinit(xxx:)にまとめるとか、Foundation, AppKitにあるClassのメソッド名を洗練させるとか。
Foundation, AppKitって1980年代の設計のままだから、あの長いメソッド名を
ちょっとだけ短くするだけで、まだまだObj-Cは延命できそうな気がする。
Swift3.x見たく、メソッド名の短縮化をObj-Cへcome on!
402デフォルトの名無しさん (スプッッ Sd4a-skpP)
2017/04/24(月) 09:52:31.43ID:mLc1nANzd >>401
解ってないなあ。
解ってないなあ。
403デフォルトの名無しさん (ワッチョイ bff3-QkHB)
2017/04/24(月) 10:00:22.08ID:Et0GUfRD0 >>402
詳しく!
詳しく!
404デフォルトの名無しさん (ワッチョイ bff3-QkHB)
2017/04/24(月) 10:02:56.87ID:Et0GUfRD0 Obj-C開発コミュニティーは崩壊しており、いまさらObj-Cのupgradeは難しいって事でしょうか?
だから、Swiftの開発が始まったって事でしょうか?
Obj-Cってコンパイル早くていい感じ何ですけど。Xcodeもサクサク動くし。
SwiftのせいでMacbook Pro15買わなくなっちゃいましたヨォ。俺は!
だから、Swiftの開発が始まったって事でしょうか?
Obj-Cってコンパイル早くていい感じ何ですけど。Xcodeもサクサク動くし。
SwiftのせいでMacbook Pro15買わなくなっちゃいましたヨォ。俺は!
405デフォルトの名無しさん (スプッッ Sd4a-mqxQ)
2017/04/24(月) 10:15:52.44ID:PIzQilqTd 買ったのならもういいじゃん
406デフォルトの名無しさん (スプッッ Sd4a-skpP)
2017/04/24(月) 11:07:05.55ID:mLc1nANzd407デフォルトの名無しさん (スプッッ Sd4a-a9+m)
2017/04/24(月) 12:02:48.74ID:SvpXvUmYd >>399
書くのがめんどくさいってのはある
書くのがめんどくさいってのはある
408デフォルトの名無しさん (スップ Sd4a-SXGp)
2017/04/24(月) 21:16:37.16ID:P6Dtc6ePd 単純に文の長さが短いだけで読みにくいのは高級言語としては微妙だな
409デフォルトの名無しさん (ワッチョイ 8ad4-a9+m)
2017/04/24(月) 22:06:57.16ID:hcHY62kZ0 「!」は最初見たときは分かりづらいと思ったが、慣れると危険な部分が分かりやすくて良いなと思ってる
410デフォルトの名無しさん (アウアウエー Sa82-p2Ky)
2017/04/24(月) 22:16:59.71ID:o8gY9V3aa !?
411デフォルトの名無しさん (ワッチョイ bb1f-vPNP)
2017/04/25(火) 08:29:23.45ID:O6rTDgi/0 プログラミング初心者なんですが、 delegateの概念がよく分かりません。
プロトコルは実装しないといけないメソッドとかをまとめるもの?という認識ですが。
開発チュートリアルやってると、なんの説明も無しにいきなりdelegateは何とかを他のクラスに委任できるなんちゃらとか、
説明が意味不明過ぎて詰みました
だれかわかりやすく説明できる方いますか?
わかりやすいサイトでもいいです
英語サイトやYouTubeでもいいです
プロトコルは実装しないといけないメソッドとかをまとめるもの?という認識ですが。
開発チュートリアルやってると、なんの説明も無しにいきなりdelegateは何とかを他のクラスに委任できるなんちゃらとか、
説明が意味不明過ぎて詰みました
だれかわかりやすく説明できる方いますか?
わかりやすいサイトでもいいです
英語サイトやYouTubeでもいいです
412デフォルトの名無しさん (スプッッ Sd33-a9+m)
2017/04/25(火) 08:33:44.54ID:DixYtrACd >>411
スレチ
スレチ
413デフォルトの名無しさん (ワッチョイ bff3-QkHB)
2017/04/25(火) 08:43:07.85ID:uqhlwSBc0 >>411
スレチ、とかってのは無視してOKっすからね。
あとdelegateパターン、delegateメソッド、delegate変数って言葉を使える様に
ならないとね。
delegateの概念ってのは、「クラスに委任」とかっていうのは単なる辞書を引いた
だけの説明なのでこれも無視です。
delegateパターンってのは2つのクラス、1つのプロトコルを使ったパターンです。
あまりにも、当たり前に使われるので、説明無しにdelegateパターンって出てきます。
この記事が参考になるんちゃいまっしゃろか?
UIKit類似Frameworkを自作してみる
http://qiita.com/externvoid@github/items/c70ce09aea758a548b22
スレチ、とかってのは無視してOKっすからね。
あとdelegateパターン、delegateメソッド、delegate変数って言葉を使える様に
ならないとね。
delegateの概念ってのは、「クラスに委任」とかっていうのは単なる辞書を引いた
だけの説明なのでこれも無視です。
delegateパターンってのは2つのクラス、1つのプロトコルを使ったパターンです。
あまりにも、当たり前に使われるので、説明無しにdelegateパターンって出てきます。
この記事が参考になるんちゃいまっしゃろか?
UIKit類似Frameworkを自作してみる
http://qiita.com/externvoid@github/items/c70ce09aea758a548b22
414デフォルトの名無しさん (アウアウカー Saeb-Xafy)
2017/04/25(火) 09:52:21.41ID:o+aECIKxa デリゲートってのはなぁ・・おっと、後は>>145頼む
415デフォルトの名無しさん (アウアウカー Saeb-Xafy)
2017/04/25(火) 09:58:28.39ID:o+aECIKxa あぁ、デリゲート先間違えた。>>416頼む
416デフォルトの名無しさん (スプッッ Sd33-a9+m)
2017/04/25(火) 10:39:09.75ID:DixYtrACd >>413
スレチはスレチ
swiftに関係ないし初心者質問スレでもないので質問者の想定レベルが不明
しかも>>413はdelegateの説明をしていない
あと紹介するなら、こっちじゃないの?
http://qiita.com/mochizukikotaro/items/a5bc60d92aa2d6fe52ca
iOSに限定したdelegateへの質問なら、こっちの方が答えがあると思う
[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad]
http://egg.2ch.net/test/read.cgi/mac/1484217623/
スレチはスレチ
swiftに関係ないし初心者質問スレでもないので質問者の想定レベルが不明
しかも>>413はdelegateの説明をしていない
あと紹介するなら、こっちじゃないの?
http://qiita.com/mochizukikotaro/items/a5bc60d92aa2d6fe52ca
iOSに限定したdelegateへの質問なら、こっちの方が答えがあると思う
[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad]
http://egg.2ch.net/test/read.cgi/mac/1484217623/
417デフォルトの名無しさん (ワッチョイ 4af3-p2Ky)
2017/04/25(火) 10:58:46.24ID:3wBLGJN/0 片側Rangeが通った
a[..<i] とか a[...i] とか a[i...] ってデフォで書ける
a[..<i] とか a[...i] とか a[i...] ってデフォで書ける
418デフォルトの名無しさん (ササクッテロラ Sp23-G776)
2017/04/25(火) 11:06:07.97ID:3fSgT78Np 今までデフォじゃなければ書けたの?
ユーザが拡張可能なコンパイラプラグインIFってswiftにあったっけかな
ユーザが拡張可能なコンパイラプラグインIFってswiftにあったっけかな
419デフォルトの名無しさん (スプッッ Sd33-a9+m)
2017/04/25(火) 11:23:22.00ID:DixYtrACd a.prefix(i) // a[..<i]
a.dropFirst(i) // a[i..]
と、手で書き換えるとか?
a.dropFirst(i) // a[i..]
と、手で書き換えるとか?
420デフォルトの名無しさん (スップ Sdaa-skpP)
2017/04/25(火) 12:09:00.58ID:uC0QdnUhd421デフォルトの名無しさん (ワッチョイ 4af3-p2Ky)
2017/04/25(火) 12:18:09.30ID:3wBLGJN/0 prefix operator ..<
prefix operator ...
postfix operator ...
を定義するだけ
SE-172のDetailed design真似して3.1で書いてみた
http://swift.sandbox.bluemix.net/#/repl/58febd1c8ef5d90dc580fb9b
まだSE-148のジェネリックなsubscriptがないから、ちょっとコードの重複ができてしまった
prefix operator ...
postfix operator ...
を定義するだけ
SE-172のDetailed design真似して3.1で書いてみた
http://swift.sandbox.bluemix.net/#/repl/58febd1c8ef5d90dc580fb9b
まだSE-148のジェネリックなsubscriptがないから、ちょっとコードの重複ができてしまった
422デフォルトの名無しさん (ワッチョイ bff3-QkHB)
2017/04/25(火) 12:45:51.70ID:uqhlwSBc0423デフォルトの名無しさん (ササクッテロラ Sp23-G776)
2017/04/25(火) 13:29:21.36ID:3fSgT78Np424デフォルトの名無しさん (ワッチョイ 4a3c-TbnN)
2017/04/25(火) 18:50:45.06ID:8UEDmHts0 >>411
https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html
http://best-practice-software-engineering.ifs.tuwien.ac.at/patterns/delegation.html#Structure
https://code.tutsplus.com/articles/design-patterns-delegation--cms-23901
Delegateはデリゲーションパターンにおいて処理を委譲されるクラスの役割名
「委譲する」という意味の動詞としても使われる
プロトコルは他言語で言うインターフェース
DelegationはCocoaでフレームワークから開発者の書いたコードを呼び出す場合によく使われるパターン
例えばTableViewの行を選択した時に何か独自の動作を行いたいなら
UITableViewDelegateに定義されている特定のメソッドを実装してDelegateとして設定しておくと
ユーザーが行を選択した時にDelegateとして設定したクラスの該当メソッドが呼び出されて開発者が書いたコードが実行される
UITableViewDelegateがプロトコルでそのプロトコルを実装したクラスがDelegate
プロトコルとの関係がわかりにくければUITableViewDelegateProtocolという名前を省略してると考えてるといいかも
https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html
http://best-practice-software-engineering.ifs.tuwien.ac.at/patterns/delegation.html#Structure
https://code.tutsplus.com/articles/design-patterns-delegation--cms-23901
Delegateはデリゲーションパターンにおいて処理を委譲されるクラスの役割名
「委譲する」という意味の動詞としても使われる
プロトコルは他言語で言うインターフェース
DelegationはCocoaでフレームワークから開発者の書いたコードを呼び出す場合によく使われるパターン
例えばTableViewの行を選択した時に何か独自の動作を行いたいなら
UITableViewDelegateに定義されている特定のメソッドを実装してDelegateとして設定しておくと
ユーザーが行を選択した時にDelegateとして設定したクラスの該当メソッドが呼び出されて開発者が書いたコードが実行される
UITableViewDelegateがプロトコルでそのプロトコルを実装したクラスがDelegate
プロトコルとの関係がわかりにくければUITableViewDelegateProtocolという名前を省略してると考えてるといいかも
425デフォルトの名無しさん (スップ Sdaa-skpP)
2017/04/25(火) 20:11:15.65ID:uC0QdnUhd でもAppleはblockを奨めているから
今時delegateじゃないよね
まあ知っておいた方が良いかな程度?
今時delegateじゃないよね
まあ知っておいた方が良いかな程度?
426デフォルトの名無しさん (ワッチョイ 4a3c-TbnN)
2017/04/25(火) 20:23:32.46ID:8UEDmHts0 blockと何の関係があるの?
427デフォルトの名無しさん (ワッチョイ 7f54-2dAw)
2017/04/25(火) 20:30:05.59ID:wOaxuRz+0 >>424
thx
2番目のURL記載のMultiple Inheritanceを避けて
Single Inheritance with Delegationってのが判りやすっすね。
CにはAの機能とBの機能が欲しい。じゃぁ、CはA, B2つのクラスを継承させれば良いか?というとそうでは無い。
CはAを継承しつつ、Bをメンバに持てば良い。
thx
2番目のURL記載のMultiple Inheritanceを避けて
Single Inheritance with Delegationってのが判りやすっすね。
CにはAの機能とBの機能が欲しい。じゃぁ、CはA, B2つのクラスを継承させれば良いか?というとそうでは無い。
CはAを継承しつつ、Bをメンバに持てば良い。
428デフォルトの名無しさん (ワッチョイ 7f54-2dAw)
2017/04/25(火) 20:59:50.91ID:wOaxuRz+0 is-a関係、part-of関係がはっきり決まるオブジェクト間の関係ばかりでは無い。
例:
- 正常運転 is-a 運転、復旧運転 is-a 運転
- 正常運転 part-of 運転、復旧運転 part-of 運転
同じ概念間にis-a関係、part-of関係の両方が同時に成立する事は
ありえず、どこか間違っている。
is-a関係:Interitance
part-of関係:delegateパターン
両者を上手く使い分けるのが吉!
例:
- 正常運転 is-a 運転、復旧運転 is-a 運転
- 正常運転 part-of 運転、復旧運転 part-of 運転
同じ概念間にis-a関係、part-of関係の両方が同時に成立する事は
ありえず、どこか間違っている。
is-a関係:Interitance
part-of関係:delegateパターン
両者を上手く使い分けるのが吉!
429デフォルトの名無しさん (ワッチョイ 270f-SXGp)
2017/04/26(水) 01:11:59.43ID:zySdwBLY0 inheritanceかな
430デフォルトの名無しさん (ササクッテロラ Sp23-G776)
2017/04/26(水) 08:47:49.85ID:0yNg6j//p >>426
スレチだけどURLConnection(非推奨)とURLSession(推奨)見比べろ
スレチだけどURLConnection(非推奨)とURLSession(推奨)見比べろ
431デフォルトの名無しさん (ワッチョイ 6372-Xafy)
2017/04/26(水) 11:01:47.26ID:8tL6gyso0432デフォルトの名無しさん (ワッチョイ ab05-MGa5)
2017/04/26(水) 11:05:31.83ID:GvwT/G3X0 数で比較するんじゃなくて、どっちをユーザに使わせようとしてるかを比較するんだよ?
UIAlertController(推奨)とUIAlertView(非推奨)みたいなのもあるな
UIAlertController(推奨)とUIAlertView(非推奨)みたいなのもあるな
433デフォルトの名無しさん (ワッチョイ 6372-Xafy)
2017/04/26(水) 11:25:04.64ID:8tL6gyso0 すまん、数を持ち出したのは間違いだったが物事を単純に考えてる奴には目で見て分かりやすいと思ったので
新しいAPIでもcompletionHandlerもあればdelegateもあるし適材適所って事
新しいAPIでもcompletionHandlerもあればdelegateもあるし適材適所って事
434デフォルトの名無しさん (ワッチョイ ab05-MGa5)
2017/04/26(水) 11:38:07.27ID:GvwT/G3X0 適材適所であることに異論はないが、今までdelegateだったものがblockに移行してる事実はあるよね
>>426の「何の関係があるの?」の疑問は解決したかな
同じようにObjCだったものがSwiftに移行・・・はして失敗してるんだよなぁ
Swiftに移行したけど破壊変更が頻繁でメンテナンス性が悪いからObjCに差し戻そうって意見が割とガチで出て辛い
>>426の「何の関係があるの?」の疑問は解決したかな
同じようにObjCだったものがSwiftに移行・・・はして失敗してるんだよなぁ
Swiftに移行したけど破壊変更が頻繁でメンテナンス性が悪いからObjCに差し戻そうって意見が割とガチで出て辛い
435デフォルトの名無しさん (ワッチョイ 4a3c-TbnN)
2017/04/26(水) 14:54:49.58ID:rNMObgtm0 >>430
なるほど>>425が言いたいことは理解したわ
Delegateをコールバックを実現する仕組みの一つとして捉えると
わざわざDelegateを定義しなくてもcompletionHandlerみたいなblockパラメータって十分ってことかな
シンプルなケースはそれでいいけど少し複雑になるとDelegate使ったほうが良いケースもあるし使い分けだよね
自分で新しく作るんじゃなくUITableViewDelegateみたいなフレームワークで用意されたプロトコルを使う場合は
コールバックを実現する仕組みというより事前に用意された拡張ポイントを使う方法として捉えてる
その場合サブクラス化、デリゲート、イベントなんかは同じグループとして捉えてるけどBlockは抽象度違うからグループの外だね
なるほど>>425が言いたいことは理解したわ
Delegateをコールバックを実現する仕組みの一つとして捉えると
わざわざDelegateを定義しなくてもcompletionHandlerみたいなblockパラメータって十分ってことかな
シンプルなケースはそれでいいけど少し複雑になるとDelegate使ったほうが良いケースもあるし使い分けだよね
自分で新しく作るんじゃなくUITableViewDelegateみたいなフレームワークで用意されたプロトコルを使う場合は
コールバックを実現する仕組みというより事前に用意された拡張ポイントを使う方法として捉えてる
その場合サブクラス化、デリゲート、イベントなんかは同じグループとして捉えてるけどBlockは抽象度違うからグループの外だね
436デフォルトの名無しさん (ワッチョイ bff3-QkHB)
2017/04/26(水) 15:04:57.22ID:3mj2KO3W0 SwiftのprotocolはJavaのinterfaceみたいなもんだと説明されるけど、Javaでoptionalメソッドを定義できるの?
437デフォルトの名無しさん (アウアウエー Sa82-p2Ky)
2017/04/26(水) 15:08:18.39ID:gZc0mpUPa >>436
スレチもいいとこ
スレチもいいとこ
438デフォルトの名無しさん (ワッチョイ 4a3c-TbnN)
2017/04/26(水) 15:17:06.14ID:rNMObgtm0 >>436
何もしないデフォルト実装を用意する
何もしないデフォルト実装を用意する
439デフォルトの名無しさん (ワッチョイ bff3-QkHB)
2017/04/26(水) 15:54:00.63ID:3mj2KO3W0 >>438
なるほどぉ。
なるほどぉ。
440デフォルトの名無しさん (スップ Sdaa-SXGp)
2017/04/26(水) 19:42:58.31ID:7DECPBe+d funcって書くのにメソッドなの??
441デフォルトの名無しさん (ワッチョイ 533c-p2Ky)
2017/04/26(水) 19:59:41.32ID:lYhaqZk40 そもそもfuncとmethodを分ける意味ってあんの?
会話で通じないとかなくね?
会話で通じないとかなくね?
442デフォルトの名無しさん (ササクッテロレ Sp23-p2Ky)
2017/04/26(水) 20:56:10.25ID:2ExUo8Ujp Fuck!!!
443デフォルトの名無しさん (スッップ Sdaa-skpP)
2017/04/26(水) 21:12:05.58ID:7OfAzagzd 関数の事をmethodって言う奴は「解ってないなあ」と思う。
あと、宣言と定義の使い分けできていない人も苦手だな。
あと、宣言と定義の使い分けできていない人も苦手だな。
444デフォルトの名無しさん (スップ Sd4a-mqxQ)
2017/04/26(水) 21:14:41.12ID:yg9vhXXld 伝わればなんでもいいよ
445デフォルトの名無しさん (ワッチョイ 533c-p2Ky)
2017/04/26(水) 21:15:15.06ID:lYhaqZk40 ヘッダーがなくなった時点で、宣言も定義もほぼ同義じゃねーの
446デフォルトの名無しさん (ワッチョイ 4af3-p2Ky)
2017/04/26(水) 21:43:02.76ID:ZkZBCOOl0 Swiftでは公式に用語がどう定義されてんだろうと思って探したら丁度ズバリ書いてた
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/doc/uid/TP40014097-CH34-ID351
In Swift, most declarations are also definitions in the sense that they
are implemented or initialized at the same time they are declared.
That said, because protocols don’t implement their members, most
protocol members are declarations only.
For convenience and because the distinction isn’t that important in
Swift, the term declaration covers both declarations and definitions.
Swiftではプロトコルとか一部除いてほぼ宣言と同時に定義するし、いちいち区別するのメンドクセーから「宣言」も「定義」もひっくるめて「宣言」って用語だけ使うわー
まぁそれもBNFだけでの話のようで、Guideの他の部分の文章では「definition」も使われたり混同されたりしてるようだけど
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/doc/uid/TP40014097-CH34-ID351
In Swift, most declarations are also definitions in the sense that they
are implemented or initialized at the same time they are declared.
That said, because protocols don’t implement their members, most
protocol members are declarations only.
For convenience and because the distinction isn’t that important in
Swift, the term declaration covers both declarations and definitions.
Swiftではプロトコルとか一部除いてほぼ宣言と同時に定義するし、いちいち区別するのメンドクセーから「宣言」も「定義」もひっくるめて「宣言」って用語だけ使うわー
まぁそれもBNFだけでの話のようで、Guideの他の部分の文章では「definition」も使われたり混同されたりしてるようだけど
447デフォルトの名無しさん (ワッチョイ 7f54-2dAw)
2017/04/26(水) 22:01:01.52ID:H5XmXuTS0 >>443
うっそーん?
instance method, type methodっていう言い方はするが、
instance function, type function(class function)なんて聞いたこと
ないぞぉ。
うっそーん?
instance method, type methodっていう言い方はするが、
instance function, type function(class function)なんて聞いたこと
ないぞぉ。
448デフォルトの名無しさん (ワッチョイ 5b05-yA3i)
2017/04/27(木) 02:46:48.47ID:v69LNgpd0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 [蚤の市★]
- 地震 [Hitzeschleier★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 【話題】好きな鍋は?! 「寄せ鍋」「キムチ鍋」「水炊き」「もつ鍋」「豆乳鍋」「ちゃんこ鍋」「ごま坦々鍋」「トマト鍋」 [ひぃぃ★]
- 【地震】 茨城 栃木 埼玉 千葉 震度4 [KingFisherは魚じゃないよ★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 自民党、金融所得課税30%で決定か。株を売ったり、配当金が入ると国が30%持って行きます [838847604]
- ムミィ🥺いる❓🏡
- 巨乳にとにかく縁がない
- 新型PSP、ほぼ全てのPS5ソフトをプレイできる?キタ━━━━━━(゚∀゚)━━━━━━!!!!! [303493227]
- 高市さん「おかしいリフレ派の有識者から聞いていた話と全然違う」急速な円安拡大に危機感、利上げや増税容認へ [709039863]
- 兎田ぺこら、とんでもない方法でさくらみこの存在を消してしまう──── [268244553]
