Swift part10 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/02/20(月) 10:00:13.40ID:ChbPWtRt0
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
2017/04/08(土) 09:37:52.65ID:FmwPLc4P0
そんなのに驚かれても...
とっくの昔にJavaでも動くけどな...
2017/04/08(土) 10:33:14.51ID:jKlH6mxl0
>>323
俺、変数名に英数記号以外が来ると、拒否反応を起こす。
古いのかなぁ?俺って。

だから、let pi = Double.pi
が好みなんだけど。
2017/04/08(土) 10:36:29.24ID:FmwPLc4P0
>>324
普通は使わない
Javaでもutf8対応を示すためのただのネタで、これを本気で使ってる奴はいないだろう
2017/04/08(土) 10:50:30.96ID:63G3fI6va
Option + P でπが入力できることは当然知ってるよな?
2017/04/08(土) 11:15:21.87ID:zwbfOwFqd
知らねぇだろお前ら感がにじみ出すぎててイタい
2017/04/08(土) 11:36:08.72ID:63G3fI6va
なんだ知らなかったのか
1つ賢くなったな
2017/04/08(土) 12:01:07.48ID:FmwPLc4P0
聞いてもいないのにいきなり言い出して確かにイタいな
2017/04/08(土) 12:17:13.50ID:59elDVKip
急にJavaを比較対象として出して草
ObjCと比較しろやw
2017/04/08(土) 12:21:16.17ID:FmwPLc4P0
>>330
??
2017/04/08(土) 12:50:51.72ID:jKlH6mxl0
>>326
うぅー。知らんかった。というか、忘れてた。

昔ΩがOption-Zで入力できるのを使ったが、それっきり。
2017/04/08(土) 12:53:01.39ID:jKlH6mxl0
>>330
Javaとの比較歓迎なんだけど、俺は。

Javaで仕事した事ないけど、情報処理の試験対策で勉強したし。
Design Patternの本読むのに、Javaで理解したし。
2017/04/08(土) 13:26:15.68ID:bcrLvy920
4マダァ?
2017/04/08(土) 13:33:22.85ID:59elDVKip
iアプリやAndroidくらいしかやったことないと比較はJavaで適当だろうけど
動作OSとかランタイムの在り方とか言語文法の系譜とか違いすぎる

同じAppleOSで動いて、.soランタイムだけ要して、without C程度の系譜の同じ土俵で評価すべきじゃね
自分が知ってる言語って程度で比較に挙げるならC#でもGoでもRubyでもなんでもアリだからw
2017/04/08(土) 14:39:02.66ID:bcrLvy920
非ASCII識別子のネタなんて何の言語引き合いに出しても別に問題ないっしょ
2017/04/08(土) 16:52:22.92ID:EanGPAz+0
おっπ
2017/04/08(土) 17:04:27.68ID:FmwPLc4P0
はい
2017/04/09(日) 16:19:12.39ID:dBjEGHWC0
揉ませろ
2017/04/13(木) 16:26:07.95ID:P0VwbMdt0
メモリー管理方式取り入れるってニュース見かけたんだけど
Swiftまた互換性無くなるんか?
2017/04/13(木) 16:43:28.23ID:0o/hjfdWp
>>340
>>69
2017/04/13(木) 16:50:05.36ID:JlstuCPca
「タイム互換」短すぎやでほんま
タイム互換いいたいだけやけどな
2017/04/13(木) 16:58:45.96ID:Z4M4iBLva
      _          __
     /  \       /    \
   /     \    /       \
  /  / ̄ ̄\ \ / / ̄ ̄ ̄\__\
// ̄     / ̄| ̄ | ̄`くヽ__/>   |  \
 ̄        `ー'`ー'`ー'/刧凵R    ̄ ̄
           |   | / 、/⌒ヽ,ヽ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           |   | | | 〇 O) |   < ブタモ オダテリャ キニノボル。。。
           |  __|_> ̄ ̄ ̄く       \___________
           |  (___ノ      |
           |  __|_|_     /e
           |  (___ノ、___/
           |    |
           |   |
           |   |
           |   |
           |   |
           |   |
2017/04/13(木) 17:49:06.53ID:P0VwbMdt0
見つけた。つい最近のやつ

swiftメモリオーナシップのマニフェストが公開
https://www.infoq.com/jp/news/2017/04/swift-memory-ownership-model
2017/04/13(木) 17:53:40.70ID:Z4M4iBLva
オナニストに空目した
2017/04/13(木) 18:33:03.91ID:WsZTJ2Pb0
またInfoQは2ヶ月前の話を今更ニュースにして
今日の本当の界隈ニュースはABI Dashboardがやっと公開されたこと
2017/04/13(木) 20:46:27.09ID:gaxJh+J40
>>344
翻訳がひどいなぁ。

ChridではなくChrisだし、マニフェストではなく、「今後の予定」だし。
2017/04/13(木) 21:43:29.30ID:0o/hjfdWp
結局、C++11 unique_ptrの文法ラップなのかな
ObjCでも使えるなら使いたいから頼むよー
2017/04/14(金) 00:10:47.26ID:CJipXrOe0
Rust inspiredとのことだからunique_ptrなんてレベルじゃない
ライフタイムかそれに類するものを導入する気だろう
2017/04/17(月) 11:21:13.44ID:rZd85UOy0
Swift4で何がかわりそうなのか
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って感じでアクセスする。ってこった。
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が戻り値

どっちだ?
353デフォルトの名無しさん (スプッッ Sd3f-IVUN)
垢版 |
2017/04/17(月) 12:20:26.64ID:vkFfzl9Jd
>>352
AとBの二つの引数を持つclosureを
指定したAに値を固定した場合のBだけを引数にもつclosureを返す、というclosureに変換する関数
2017/04/17(月) 16:19:08.73ID:3GD20cJp0
>>352
1の方だね
355デフォルトの名無しさん (ワッチョイ eb92-D+C1)
垢版 |
2017/04/17(月) 17:25:42.88ID:D/VW2xRY0
もういい加減にしてほしいな
言語ヲタが「ボクチンが考えた最高の言語」遊びしてるようにしか見えない
2017/04/17(月) 18:59:19.87ID:nd1F7ywi0
批判なら具体的に
でなければアンチスレへ
2017/04/17(月) 19:03:02.31ID:kDXw+CZ7a
->が出てきたらその時点で->より前が引数、->より後ろが戻り値
2017/04/17(月) 20:39:28.09ID:oD+wMWyY0
>>357
なるホドォ

((A) -> B) -> C
これは、
引数 ((A) -> B)
戻り値 C

ですね。
2017/04/17(月) 20:40:25.07ID:oD+wMWyY0
>>358
RxSwiftのソースみてると、こんなんばっかり。

Reactive.itemsメソッドとか!
2017/04/17(月) 20:46:01.79ID:lXU86btga
ヒマなんですね
361デフォルトの名無しさん (エムゾネ FF3f-IVUN)
垢版 |
2017/04/17(月) 21:24:11.38ID:6RZC9xguF
>>354
まあ、curry化ってそういうものだしね
2017/04/17(月) 21:25:12.82ID:lXU86btga
インド人もびっくりだよね
2017/04/17(月) 22:47:26.87ID:+gxNPbQK0
>>355
SE-0110でググって最初のリンク開けば Bug: SR-2008 が目に入って
バグ対応なんだな、くらいはすぐに察せる

目的や理由も捉えないと余計に遠回りになるだけだぞ
2017/04/17(月) 23:10:09.48ID:/M+7HM4c0
>>350
いいからさっさと++、--、for(;;)を復活させろ
2017/04/17(月) 23:10:51.44ID:/M+7HM4c0
>>352
くっっっそ読みにくいな
さすがswiftだわ
2017/04/18(火) 00:02:25.56ID:xQgWcwpBp
>>355は4で破壊変更あることを今更知ったnewbieじゃないかな
破壊しないswiftなんてswiftじゃないと思って使ってるけど、3で安定したと思っちゃった子はそこそこいそう
2017/04/18(火) 00:31:05.68ID:nxzSbT3m0
>>355
こんなぶれぶれの独善言語についてってる奴の気が知れんわ
2017/04/18(火) 00:36:29.63ID:84Yej/faa
そんな言語のスレをヲチしてるお前もなー
2017/04/18(火) 10:13:46.23ID:GdlQD+8N0
型表記中の「->」は右結合ってことでいいんだよね?
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) としか解釈できない
371デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
垢版 |
2017/04/18(火) 12:45:37.54ID:3Ay0w4VK0
>>370
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 {
以下略
2017/04/18(火) 13:01:42.04ID:XspPM/3op
右から左方向が優先度高いのか
左から右に流してるイメージで逆方向のがしっくりくるが
関数型の思想としてそういうものだっけかな
2017/04/18(火) 13:28:19.45ID:AUE9Rrcca
俺は若干右曲がり
2017/04/18(火) 20:55:52.53ID:L5MP9LYsd
可読性の高いSwift()
2017/04/18(火) 21:25:36.15ID:dlRGmA3w0
>>366
初期から使ってるけどSwiftにはいい加減枯れてくれって思ってる。
社内で必死こいてSwift移行推進した人たちは今肩身の狭い思いをしてるのでは。
2017/04/18(火) 22:03:34.33ID:Cbc6ZCQLp
Ojb-C使ってても毎年のようにAPIレベルでDeprecatedが量産されるから
Obj-Cなら変更コストが低いってわけでもない
378デフォルトの名無しさん (スプッッ Sd3f-IVUN)
垢版 |
2017/04/19(水) 10:54:38.73ID:aMVSfr6md
>>351
3.1で4の書き方でやったらどうなるか試そうと思ったけど、眠くて忘れてたわ
誰かどうなるか教えて
379デフォルトの名無しさん (ワッチョイ 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、引数が多すぎ!
380デフォルトの名無しさん (スプッッ Sd3f-IVUN)
垢版 |
2017/04/19(水) 12:18:48.30ID:aMVSfr6md
>>379
ということは、元々括弧を省略した書き方をしなければ問題ないわけね
2017/04/19(水) 20:19:15.30ID:Vhy+qJiMd
Swiftの関数の書き方に近いシンタックスの言語ってある?
2017/04/19(水) 22:12:07.64ID:RnslI5DB0
たくさんある
2017/04/20(木) 14:01:17.17ID:sKYAHXfOa
たくさんあるかは分からんけど、Rustは比較的似てる気がする
Go とか Kotlin辺りもちょっと似てるかな
2017/04/20(木) 14:07:23.48ID:Vb04xDKlp
Java8も近い気がする
2017/04/20(木) 17:04:27.86ID:VpJy20l50
String再実装の第一弾と複数行文字列リテラルがレビュー通った
386デフォルトの名無しさん (ワッチョイ bff3-QkHB)
垢版 |
2017/04/21(金) 08:24:24.47ID:ZBCs1arm0
>>385
RubyのHere Documentみたいなもんか?
json = <<'EOS'
{
"language": "Ruby"
}
EOS
2017/04/21(金) 12:37:01.73ID:PVM41qEx0
let json = """
    {
        "lang": "Swift"
    }
    """"
json == "{¥n    ¥"lang¥": ¥"Swift¥"¥n}"

閉じ"""の行と同じインデントが自動的に削除される(行頭が閉じ"""に揃う)
便利
2017/04/21(金) 12:49:25.47ID:z0f2AZORp
発展途上の言語はどんどん便利になるからいいね
389デフォルトの名無しさん (ワッチョイ 7f54-ddVw)
垢版 |
2017/04/22(土) 08:43:07.39ID:kAxmCg/50
>>387
詳しく!
2017/04/22(土) 15:30:44.86ID:z7G2zYcp0
こんなものが今頃入るとか発展途上すぎるんだよ
2017/04/22(土) 15:35:08.08ID:PgVA7Plza
Javaにはないけどな
Swiftのはインデントまで考慮されて洗練されてるし
2017/04/22(土) 15:42:53.58ID:z7G2zYcp0
インデント考慮って逆に分かりづらくなるような気が。。。
Optionalもそうだと思うけどSwiftって一見便利そうに見えて却って面倒くさくなってる要素が多いと思う
2017/04/22(土) 15:58:34.23ID:kAxmCg/50
>>392
あんまり、ルールが多くなると、C++みたく、不人気になるんだよねぇ。
2017/04/23(日) 12:04:02.69ID:OKIxwLfDp
>>390
1.0 stableだ、ヒャッハーって始めて、その後半年単位で破壊変更受けた絶望に比べたら別に、、、
発展途上どんと来い、商業採用しない前提でポストObjCの進化は愉快
2017/04/23(日) 13:12:37.68ID:PRvAU6qE0
>>393
今のSwiftも十分ルール多いと思うぞ
2017/04/23(日) 13:18:16.81ID:16+ithPZ0
>>395
同意
だから、Swift不人気になって、だれも使われなくなる。
ってストーリー展開が危険。
2017/04/23(日) 13:20:20.98ID:16+ithPZ0
>>394
破壊的変更だけど、事前通告もあるし。。。will be depreridated. warningとか。

納得できる変更だし、改善方向に向かってるのでOK。
改悪とか、こんな機能、だれも使わんぜぇ。ってのが無いのでoK.

Windows 10の3D Paint Brush機能って必要か?
2017/04/23(日) 13:52:00.91ID:HtOZeUof0
Swiftって読みにくすぎ
ObjC 3.0でいいわまじで
政治的に生まれた言語はどこかで無理が生じる
2017/04/23(日) 22:20:07.29ID:d5pkzuTb0
ObjCの方が読みづらいわ
読みづらいというより書きづらい…かな
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!
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買わなくなっちゃいましたヨォ。俺は!
2017/04/24(月) 10:15:52.44ID:PIzQilqTd
買ったのならもういいじゃん
406デフォルトの名無しさん (スプッッ Sd4a-skpP)
垢版 |
2017/04/24(月) 11:07:05.55ID:mLc1nANzd
>>403
Objective-Cの考え方は、ドキュメンテーションコード。
だから、名前を短くするのはナンセンス。
407デフォルトの名無しさん (スプッッ Sd4a-a9+m)
垢版 |
2017/04/24(月) 12:02:48.74ID:SvpXvUmYd
>>399
書くのがめんどくさいってのはある
2017/04/24(月) 21:16:37.16ID:P6Dtc6ePd
単純に文の長さが短いだけで読みにくいのは高級言語としては微妙だな
409デフォルトの名無しさん (ワッチョイ 8ad4-a9+m)
垢版 |
2017/04/24(月) 22:06:57.16ID:hcHY62kZ0
「!」は最初見たときは分かりづらいと思ったが、慣れると危険な部分が分かりやすくて良いなと思ってる
2017/04/24(月) 22:16:59.71ID:o8gY9V3aa
!?
2017/04/25(火) 08:29:23.45ID:O6rTDgi/0
プログラミング初心者なんですが、 delegateの概念がよく分かりません。

プロトコルは実装しないといけないメソッドとかをまとめるもの?という認識ですが。

開発チュートリアルやってると、なんの説明も無しにいきなり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
2017/04/25(火) 09:52:21.41ID:o+aECIKxa
デリゲートってのはなぁ・・おっと、後は>>145頼む
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/
2017/04/25(火) 10:58:46.24ID:3wBLGJN/0
片側Rangeが通った
a[..<i] とか a[...i] とか a[i...] ってデフォで書ける
2017/04/25(火) 11:06:07.97ID:3fSgT78Np
今までデフォじゃなければ書けたの?
ユーザが拡張可能なコンパイラプラグインIFってswiftにあったっけかな
419デフォルトの名無しさん (スプッッ Sd33-a9+m)
垢版 |
2017/04/25(火) 11:23:22.00ID:DixYtrACd
a.prefix(i) // a[..<i]
a.dropFirst(i) // a[i..]
と、手で書き換えるとか?
420デフォルトの名無しさん (スップ Sdaa-skpP)
垢版 |
2017/04/25(火) 12:09:00.58ID:uC0QdnUhd
>>417
gj!
nice「とか」!
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がないから、ちょっとコードの重複ができてしまった
422デフォルトの名無しさん (ワッチョイ bff3-QkHB)
垢版 |
2017/04/25(火) 12:45:51.70ID:uqhlwSBc0
>>421
動いた。
こんなのチャチャッっと書けるなんて、すごいねぇ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況