板検索:
Swift part9 (1000)
まとめビュー
1
デフォルトの名無しさん(ワッチョイ 8b3c-/6Y/)[sage]   投稿日:2016/10/18 11:34:44  ID:oLo879ze0.n
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

関連スレ

プログラミング言語Swift 3 /新・mac板

[SDK]iPhoneアプリ開発初心者質問箱47[touch][iPad] /新・mac板

Xcode part14 /新・mac板

Swiftアンチスレ part1

前スレ
Swift part8
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
コメント2件


2
終了 (ワッチョイ 67c9-3ZZL)[終了]   投稿日:2016/10/18 16:31:42  ID:q3gbqcrC0.n
糞スレストッパー

3
デフォルトの名無しさん (ワッチョイ 57c9-x3Zw)[sage]   投稿日:2016/10/18 16:36:48  ID:5S2LdbWL0.n
下痢にはストッパ

4
デフォルトの名無しさん (スップ Sdcf-Oa01)[sage]   投稿日:2016/10/18 19:24:46  ID:nd0z2LLHd.n
>1
おつんちん

5
デフォルトの名無しさん (ワッチョイ 213c-A7+C)[]   投稿日:2016/10/21 11:44:19  ID:09Dpangg0.n
XCTestで滅多に使わない表記だからといって

open func keyValueObservingExpectation(for objectToObserve: Any, keyPath: String, handler: XCTest.XCKeyValueObservingExpectationHandler? = nil) -> XCTestExpectation
↑の、handlerを略した書き方すると

open func keyValueObservingExpectation(for objectToObserve: Any, keyPath: String, expectedValue: Any?) -> XCTestExpectation
と区別つかねぇとかエラー吐かないでくださいよ

6
デフォルトの名無しさん (ワッチョイ 17e6-DrBp)[sage]   投稿日:2016/10/23 09:48:39  ID:M03zTDWo0.n
Javaの商用アプリケーションサーバでトップシェアのIBM
Linuxが商用利用で成功したのも2003年頃にIBMがLinux注力したから

AppleとIBMが協力関係になってSwift推し
Swiftの未来はどうなるんだろうな

7
デフォルトの名無しさん (スプッッ Sd39-YT5Q)[sage]   投稿日:2016/10/23 11:09:52  ID:l/iDXb3dd.n
大成功待った無し

8
デフォルトの名無しさん (ワッチョイ fd62-A7+C)[sage]   投稿日:2016/10/23 14:59:20  ID:254NT19n0.n
政治的にゴリ押されて出来上がった言語ってSwift以外だと例えば何があるっけ?
コメント1件

9
デフォルトの名無しさん (ワッチョイ e0c9-A7+C)[sage]   投稿日:2016/10/23 15:11:37  ID:imvMl3ez0.n(2)
流行った言語は全部ゴリ押しみたいなもんだろ

10
デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)[sage]   投稿日:2016/10/23 15:51:47  ID:kiR0Dkrqp.n(2)
type scriptやdartとか

objcもApple OSでは、これを使わないと何も出来ない的な意味でゴッリゴリ
とか言うと発狂する子が沢山来そう
コメント1件


11
デフォルトの名無しさん (スッップ Sdb8-YT5Q)[sage]   投稿日:2016/10/23 16:07:03  ID:3d+f6jv2d.n
>10
Objective-CはAppleが採用するずっとずっと前からあったけど…。

12
デフォルトの名無しさん (JP 0He5-GPOt)[sage]   投稿日:2016/10/23 16:07:53  ID:CGzeXgZhH.n(2)
NeXTより前からあるね

13
デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)[sage]   投稿日:2016/10/23 16:26:10  ID:kiR0Dkrqp.n(2)
発狂早かったな
2.0だの言わないといけないのかな

今のモダンObjCと最初期PbjCは別モノだろう
Swift betaとSwift3くらいに言語仕様も実装手法も違う

14
デフォルトの名無しさん (JP 0He5-GPOt)[sage]   投稿日:2016/10/23 16:39:25  ID:CGzeXgZhH.n(2)
後出しの割にはイケてない

15
デフォルトの名無しさん (ワッチョイ e0c9-A7+C)[sage]   投稿日:2016/10/23 16:56:22  ID:imvMl3ez0.n(2)
GCとか迷走もあったしなぁ

16
デフォルトの名無しさん (スッップ Sdb8-YT5Q)[sage]   投稿日:2016/10/23 16:59:07  ID:PL/5Is43d.n
最初に発狂とか必死とか言い出したやつが発狂じみて必死になってくる法則

17
デフォルトの名無しさん (ワッチョイ 4066-vevC)[sage]   投稿日:2016/10/23 17:34:51  ID:pqyteWXL0.n
C++じゃなくてObjective-Cの方が普及してたらだいぶ違ったろうになぁ

18
デフォルトの名無しさん (ワッチョイ fa13-GPOt)[sage]   投稿日:2016/10/24 10:43:06  ID:9xygNeDa0.n(2)
なぜC++の方が普及したのですか?
コメント1件

19
デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)[sage]   投稿日:2016/10/24 11:24:05  ID:zqG7Aoccp.n(2)
取り合えず、メッセージ式文法が好まれなかった
他言語も追従しないし、当のアポーもメンバ変数に対してはメッセージ式を殺しにかかってるし

じゃあ、Swiftが流行るのかというと別だけど

20
デフォルトの名無しさん (ワッチョイ fa13-GPOt)[sage]   投稿日:2016/10/24 11:43:48  ID:9xygNeDa0.n(2)
メッセージ式ってメソッド名が動的文字列のものも書けたっけ
コメント1件

21
デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)[sage]   投稿日:2016/10/24 12:08:54  ID:zqG7Aoccp.n(2)
ObjCスレへどうぞ

22
デフォルトの名無しさん (スプッッ Sdc8-YT5Q)[sage]   投稿日:2016/10/24 12:27:56  ID:UH3y4ryLd.n
カッコが連続するとただただ見辛い

23
デフォルトの名無しさん (スフッ Sdb8-vevC)[sage]   投稿日:2016/10/24 13:01:34  ID:IFhOb1KRd.n
>18
悪貨は良貨を駆逐する

24
デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)[sage]   投稿日:2016/10/24 13:20:21  ID:fQljBZVUp.n
SwiftがObjective-Cに駆逐されようとしている
Swiftは良貨だった、、、?
コメント1件

25
デフォルトの名無しさん (JP 0Hc8-AIfR)[sage]   投稿日:2016/10/24 16:46:18  ID:YkwUZi7rH.n
ジョブズって、プログラムわからないだろ?
なんで、Swift良い言語って言ってるの?
コメント2件

26
デフォルトの名無しさん (ワッチョイ 213c-vtRd)[sage]   投稿日:2016/10/24 17:06:50  ID:i06wcCBv0.n
霊界通信が実装されたと聞いて

27
デフォルトの名無しさん (ワッチョイ 9dc9-GPOt)[sage]   投稿日:2016/10/24 19:47:10  ID:yvoyC+Qj0.n
ack無しの無手順ぷろとこー

28
デフォルトの名無しさん (スッップ Sdb8-YT5Q)[sage]   投稿日:2016/10/24 21:42:17  ID:PZcG170Zd.n
>25
ジョブズはたぶんSwiftを知らない

29
デフォルトの名無しさん (ワッチョイ fd62-A7+C)[sage]   投稿日:2016/10/25 07:23:49  ID:TTNTJAzx0.n
>24
SwiftとObjC逆じゃね?

30
デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)[sage]   投稿日:2016/10/25 09:21:08  ID:ZmUS+kLtp.n(2)
>25はSwiftとObjCを間違えてね?
ジョブズ存命時の言語だよな、ObjCって

31
デフォルトの名無しさん (ワッチョイ e0c9-A7+C)[sage]   投稿日:2016/10/25 10:12:28  ID:HyB8mBs70.n
ジョブズの霊がラットナーに憑依して作ったのがSwift
コメント1件

32
デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)[sage]   投稿日:2016/10/25 10:39:33  ID:ZmUS+kLtp.n(2)
ジョブズが心霊療法?にはまってた頃に作り始められた言語だし可能性はあるか
生きてる時は幽体離脱で、死後は霊になってSwiftを推すとは流石ジョブズ
しかし、信者が乗らず悪貨のObjCが当然優勢ときたもんだ、くやしいのうwww

ところで、誰かSwift Package Managerって誰か使ってる?
3 stable releaseでもまだ開発中っぽかったが 、どれくらい不便か知りたい

33
デフォルトの名無しさん (ササクッテロ Sp89-vevC)[sage]   投稿日:2016/10/25 18:39:13  ID:v9gzKB+7p.n
>31
ラトナーはジョブズから作られた天然のAIだよ


34
デフォルトの名無しさん (ワッチョイ 213c-A7+C)[sage]   投稿日:2016/10/26 00:56:29  ID:5b/0SgTG0.n
関数ラベルとかに予約語を使うのを禁止すべきかどうかについてどう思う?
他の言語との一貫性を考えると禁止した方がいいと思うんだけど
うちの会社ではコーディング規約で禁止してるけど
若手エンジニアが結構反発してるんだよね
コメント2件

35
デフォルトの名無しさん (ワッチョイ fd62-YT5Q)[sage]   投稿日:2016/10/26 02:40:12  ID:NtHQYyX30.n
関数ラベルとの相性が絶望的にクソなシンタックスをまずどうにかしろ
話はそれからだ

36
デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)[sage]   投稿日:2016/10/26 05:29:30  ID:BNroq1d2p.n(2)
わざわざ可能なように頑張って作った(直した)んだから素直に使えば?
3だかで予約後と被るキーワードも''で括らないで良いみたいな修正入った気がする

キーワードの順不同廃止みたいに廃止プロポーサルは出てないよな

37
デフォルトの名無しさん (スッップ Sdb8-YT5Q)[]   投稿日:2016/10/26 08:57:46  ID:LVTypZImd.n
>34
「関数ラベルとか」の「とか」は、「関数ラベル」以外の何?

38
デフォルトの名無しさん (ワッチョイ 213c-vtRd)[sage]   投稿日:2016/10/26 09:02:55  ID:EtQ2cepM0.n(3)
反発理由が知りたいな
禁止でええやろって思うから

39
デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)[sage]   投稿日:2016/10/26 09:19:43  ID:BNroq1d2p.n(2)
問題出ないし、分かりやすければ予約語と被って問題なくね?
予約語と被って困ってたのは元はコンパイラの実装上の面倒だろう
その古い文化に慣れて、新しい文化に馴染めないのも分からいでもないが、そりゃ老がいだ

あ、他言語との歩調合わせはどうでもいい
Javaの文法でObjC書いたり 、ObjCの文法でJava書くクソッタレ信者は死ねと思ってる
他に禁止したい理由はある?

40
デフォルトの名無しさん (ワッチョイ 213c-vtRd)[sage]   投稿日:2016/10/26 09:42:23  ID:EtQ2cepM0.n(3)
多言語間の移植ちょいちょいやるから識別子にキーワードめいたものは使ってない
例えばJavaで変数名や引数名にref, params, inも使わない
一方禁止して困る理由は特に無いってだけ

禁止するにせよ、しないにせよ重大な理由は無いだろう
多少の面倒のトレードオフでどっちか選ぶだけ

他のプロジェクト入る場合はそれに合わせるから
わざわざ反発する程の何かがあるん?という疑問
コメント1件

41
デフォルトの名無しさん (ササクッテロ Sp89-bS7b)[sage]   投稿日:2016/10/26 16:25:11  ID:NhxkI5gep.n(2)
// ハゲのためにワックス買ってくる関数があるとする
// 少し前のSwift
func buyWax(const: Int, forHage hage: String) {
}
buyWax(const:3_000, forHage:

42
デフォルトの名無しさん (スプッッ Sdc8-CGyA)[]   投稿日:2016/10/26 16:26:08  ID:4gTCvaIpd.n
>40
なら、他言語の予約語を、変数名とかに使うのも禁止してるの?
使用禁止語リストを保守するのも、理由付けするのも大変そうだけどね
コメント1件

43
デフォルトの名無しさん (ササクッテロ Sp89-bS7b)[sage]   投稿日:2016/10/26 16:28:33  ID:NhxkI5gep.n(2)
コードが途中で切れたので再送

ハゲのためにワックス買ってくる関数のサンプルコード
http://swiftlang.ng.bluemix.net/#/repl/58105ac610d66e1185d3d203

リファレンス
https://swift.org/documentation/api-design-guidelines/#argument-labels

問題も面倒もない出来ることをせず、無駄に冗長なラベル名や分かりづらいラベル名は老害
まぁ若造が鬼の首を取った気分で反発してるんだろうから
この程度のコーディングルールは事なかれ主義で黙って従うのが社会人なんだよ!って黙らせればいい

44
デフォルトの名無しさん (ワッチョイ 213c-vtRd)[sage]   投稿日:2016/10/26 17:31:30  ID:EtQ2cepM0.n(3)
>42
うちは別に禁止してないぞ
移植時の面倒事回避の1つとして控えた方がいいと教えてるだけ

使う言語は限られていてそれらを知ってるのが前提だから
リストなんてものもない(面倒だし)

影響が大きくない部分は下が守ってなくても許容するし自分が入る場合は従っておく

現場でキャパ少ない奴は上で下でも地雷だわ
ブログやら掲示板では猛獣のごときスタイル論争でも好きにやればいいが
コメント1件

45
デフォルトの名無しさん (スフッ Sdb8-vevC)[sage]   投稿日:2016/10/26 18:33:44  ID:n1sZka3Md.n
>44
おれ、記憶力悪い方なんでコンパイラに怒られるまで予約語かどうかなんてわかんないや

なので、作業中の言語は対応できるけど
他の言語の予約語までは対応できない

コミット時にNGワードチェッカー走らせて拒絶するようにしておいてね
コメント1件

46
デフォルトの名無しさん (ワッチョイ 172b-bS7b)[sage]   投稿日:2016/10/26 19:39:20  ID:dE6dARfA0.n
少数言語で移植性()を保つキャパより、多数言語を言語毎の文化/文法に合わせて書けるキャパを持ちたい
JavaもObjCもSwiftもKotlinもC/C++もJavaScriptもPythonもGoもRustも みんなちがって、みんないい
コメント1件

47
デフォルトの名無しさん (ワッチョイ 638f-Jz20)[sage]   投稿日:2016/10/27 00:11:07  ID:e6l93V+P0.n
>46
でもちょっとでも優れた機能があると、それを自分がメーンで使っている言語に取り込みたくなる。そしてコモディ化が始まる。
コメント1件

48
デフォルトの名無しさん (ワッチョイ e3c9-3xFl)[sage]   投稿日:2016/10/27 01:59:35  ID:X0THyINs0.n(2)
>スタイル論争
にしても
2ちゃんの書き込みにしても
ひまなひとがやること
能力があるひとは忙しいから
そんなことにかまってる無駄な時間は使わない

49
デフォルトの名無しさん (ササクッテロ Sp7f-ceYG)[sage]   投稿日:2016/10/27 07:41:18  ID:CQANQwZhp.n(2)
>47
ねーよwww
そんなことをするのは、他言語をちょっとかじって多数言語が扱えると思っちゃってるニワカか
メイン言語を至上と信じそれ在りきでその言語を如何によく使うかを考えてる信者だ

50
デフォルトの名無しさん (ワッチョイ 6362-ijxz)[sage]   投稿日:2016/10/27 07:52:38  ID:g7DaVEt90.n(2)
ラベルに予約語が使えるようになった!とかObjCだとそれ普通だしって内容なんだが...

51
デフォルトの名無しさん (ワッチョイ 6362-ijxz)[sage]   投稿日:2016/10/27 07:54:31  ID:g7DaVEt90.n(2)
つーかObjCはセレクタ名の一部だからラベルじゃないか

52
デフォルトの名無しさん (ワッチョイ 133c-xElR)[sage]   投稿日:2016/10/27 08:55:38  ID:4jy4piHn0.n(2)
>45
>チェッカー走らせて拒絶するように
反射レスせずちゃんと読もうな
コメント1件

53
デフォルトの名無しさん (スフッ Sdff-O9pn)[sage]   投稿日:2016/10/27 10:34:44  ID:JkrFOFZTd.n
>52
あ、すまん
意味のないこと「教えて」偉そぶるんじゃない、ボケ

って、事を柔らかく言いたかっただけ


ルール化すべきことはきちんとルールを作って強制すべき
可能なら自動化もする

強制しないならそれは教える価値のないものだし
わざわざ教育すべきではない
単なる雑談、それも老人の昔話レベルだよ


バックグラウンドが違えばみんなの「普通」は違うんだから、思い込みで中途半端な「教育」されると
チーム運営上混乱を招くぞ


carとかautoとかいちいち「あれ?あの言語で予約語だったっけ?」とか考えさせるな、思考が中断されてプログラマの時間が勿体無い

他の言語に移植する時困ったらsed一発で修正できることだろ

それ以前に言語が変わればプログラムの構造自体が変わるんだから
予約語の被りを避けたところでほとんど意味がない
コメント2件

54
デフォルトの名無しさん (ササクッテロ Sp7f-Jz20)[sage]   投稿日:2016/10/27 11:59:03  ID:CQANQwZhp.n(2)
暗黙の了解ってのもあるが>34は根拠がバッドノウハウなんだよなぁ

ObjC, SwiftのIF共有のために、ObjCは 前置詞+名詞 のラベルが風習として良いから
Swiftも 前置詞(予約語) だけのラベルは適切でないってならそりゃそうだと同意するんだが

55
デフォルトの名無しさん (スプッッ Sdff-O9pn)[sage]   投稿日:2016/10/27 18:00:16  ID:8ioUQXgpd.n
ところで久しぶりに触って見たら
IBM Swift Sandboxが少し使いやすくなっていた

電車の中とかで暇つぶしにちょうどいい

スマホでSwiftやってたら隣の人に変な目で見られたけど

56
デフォルトの名無しさん (ワッチョイ 133c-0DI1)[sage]   投稿日:2016/10/27 20:31:53  ID:Ps2jyA+B0.n
Cocoa の世界だとこうなる

// Obj-C
- (void) buyWaxWithCost:(int)cost
           forHage:(NSString *) hage;

// Swift2.X
func buyWax(cost: Int, forHage hage: String)

// Swift3.X (for に省略されるのは、String が Hage の場合のみ)
func buyWax(_ cost: Int, forHage hage: String)
コメント1件

57
デフォルトの名無しさん (ワッチョイ e3c9-3xFl)[sage]   投稿日:2016/10/27 20:58:34  ID:X0THyINs0.n(2)
文法なんてタダの飾りですし
コメント1件

58
デフォルトの名無しさん (ワッチョイ 133c-ijxz)[sage]   投稿日:2016/10/27 23:11:21  ID:x9Z62p+J0.n
>53
>それ以前に言語が変わればプログラムの構造自体が変わるんだから
>予約語の被りを避けたところでほとんど意味がない

いや、それは違う。
プログラム構造を変えずに移植することは可能だし、
業務プログラミングでは当然だよ。
実際、COBOLプログラムをJavaで書き直すときは
COBOLの構造でみんな書いてるよ。
チューリング完全ならロジックレベルでは互換性があるんだから、
プログラム構造を変えずに移植することは可能なはず。
コメント1件

59
デフォルトの名無しさん (ワッチョイ 133c-WNS8)[sage]   投稿日:2016/10/27 23:48:40  ID:4jy4piHn0.n(2)
>53
ご高説ありがたいが
職場のバックグラウンドが違うのでね

60
デフォルトの名無しさん (ワッチョイ 6362-Jz20)[sage]   投稿日:2016/10/28 00:39:44  ID:adI6CPkE0.n
>57
飾りといってみたり可読性が高いと称賛してみたり
Swifterのスタンスはめちゃくちゃやな
コメント1件

61
デフォルトの名無しさん (スップ Sdff-Jz20)[sage]   投稿日:2016/10/28 01:22:03  ID:8E81+S0Cd.n
>20
そのためのセレクタだよ

62
デフォルトの名無しさん (ササクッテロ Sp7f-Jz20)[sage]   投稿日:2016/10/28 10:50:21  ID:Z2zfTStfp.n
>56
swift3ではforHageはforにするんじゃないの?
従来ルールから逆らうけども、何度もhage hage言うのはバカっぽいから

>60
objcerは何しに来てるの?アンチスレの存在知らない?

63
デフォルトの名無しさん (オッペケ Sr7f-P+QJ)[]   投稿日:2016/10/28 11:16:08  ID:v43qydeMr.n
>8
java, php

64
デフォルトの名無しさん (スップ Sdff-Jz20)[sage]   投稿日:2016/10/28 11:25:55  ID:UKDThdJFd.n
           |
            |  彡⌒ミ
           \ (´・ω・`)また髪の話してる
             (|   |)::::
              (γ /:::::::
               し \:::
                  \

65
デフォルトの名無しさん (スプッッ Sdff-O9pn)[sage]   投稿日:2016/10/28 12:43:27  ID:IYKxBeNKd.n
>58
>チューリング完全ならロジックレベルでは互換性があるんだから、
>プログラム構造を変えずに移植することは可能なはず。

なんだ、設計屋か、


たとえばcでメモリ上にファイルから読み込んだバイナリデータをmcpy()で展開しておいて
構造体の配列としてアクセスできるようにキャスティングして
データ解析いっちょあがり
とか
これをJavaで実装し直すとバイト単位で解析しなきゃならないし

オーバーロードとか型ジェネリックを多用したプログラムを
どちらにも対応していない言語にそのまま移植したらswitch文だらけでエライコッチャになるとか

macOS上で組んだプログラムをwinに持って行こうとしたらノーティフィケーションの仕組みが無くて、メッセージングを自作しなきゃならなくなったとか

そう言うのを「プログラム構造を変えずに移植できる」と言うのであれば
確かにできるよ


で、こう言う労力に比べて他の言語の予約語を避けると言うコーディングルルールはあまりにも意味がなさすぎると思わない?

必要ならコーディングルルールに「〇〇への移植性を考慮すること」って最初から入れとかなきゃ
予約語だけの問題じゃない

66
デフォルトの名無しさん (ブーイモ MMff-yDtl)[sage]   投稿日:2016/10/28 19:17:32  ID:noGENyqJM.n
移植性を考えるなら名前付き引数の使えない言語になる可能性もあるからそもそもラベルを使うべきじゃないな。全部_にした方がいいw
コメント1件

67
デフォルトの名無しさん (ササクッテロ Sp7f-Jz20)[sage]   投稿日:2016/10/28 19:51:22  ID:gCFwn2zqp.n
>66
名案だと思ったw > 全部_

68
デフォルトの名無しさん (ワッチョイ 6362-ijxz)[sage]   投稿日:2016/10/29 09:05:38  ID:U/oHXeL/0.n(2)
なるほどここはSwiftの話題全般について語るスレじゃなくて
Swiftのポジティブな話題限定のスレだったのか

69
デフォルトの名無しさん (ワッチョイ d7ba-Jz20)[sage]   投稿日:2016/10/29 09:08:25  ID:wiQwEsKb0.n
いーやネガキャンスレ

70
デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20)[sage]   投稿日:2016/10/29 09:22:50  ID:HRK0HvHWp.n(2)
自虐スレだよ
swifterは...とか言っちゃう外様はお帰り

71
デフォルトの名無しさん (ワッチョイ e34e-ijxz)[sage]   投稿日:2016/10/29 09:25:53  ID:7g9yHYdX0.n
Swiftersって言いかた、ドリフターズみたいで素敵

72
デフォルトの名無しさん (ワッチョイ 6362-ijxz)[sage]   投稿日:2016/10/29 09:51:11  ID:U/oHXeL/0.n(2)
反応の早さにワロリン
Swiftersにすると確かに響きがいいな

73
デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20)[sage]   投稿日:2016/10/29 11:31:24  ID:HRK0HvHWp.n(2)
お前もswiftersに入ってアポーの体を張ったギャグで笑おうぜ
クッソ笑えること確実、betaから笑い続けてても未だ笑える
今回のABI安定化見送りとかバカジャネーノと思うし

だからObjCのが優れてるし!ってネガキャンしなくても良いんだよ

74
デフォルトの名無しさん (ワッチョイ 039a-9fiG)[sage]   投稿日:2016/10/30 00:08:47  ID:/VdtApTb0.n
extensionは可読性をあげるのに大いに役に立つが、ビルド時間を伸ばす大きな要因となるトレードオフだと知った。
日本語のコミュニティだとあまり議論されてない。

75
デフォルトの名無しさん (ワッチョイ 6fc9-ceYG)[sage]   投稿日:2016/10/30 07:53:17  ID:j7jj+A2N0.n
煽りとかじゃなく、海外ならどこで議論されてる?
Swiftだけなのか、ObjCも同じく起こるのか、既存/自前のクラスのどちらでも発生しうるのか、仔細を知りたい

単純にお前の感覚なら、まぁそれはそれでいいけど
コメント2件

76
デフォルトの名無しさん (ワッチョイ 0f93-O9pn)[sage]   投稿日:2016/10/30 09:58:33  ID:ZJuXfoFw0.n
XCodeって予測コンパイル出来るんじゃなったっけ?
使い方知らないんだけど

いずれにしろコンパイルに時間がかかると言うのは
コンパイラ屋とかハードウェア屋が頑張る所であって

プログラミング言語としては生産性・保守性(含可読性)にこだわって欲しいな


「コンピュータ周辺機器の中で最も遅いのは人間の頭である。」って誰の言葉だっけ
コメント1件

77
デフォルトの名無しさん (ワッチョイ 039a-ijxz)[]   投稿日:2016/10/31 01:46:30  ID:m1eOJOQ80.n(3)
>75

Swiftだけだよ
議論されてるのは例えばここのコメント欄とか。
https://www.natashatherobot.com/using-swift-extensions/

あと、このスライドの23枚目では、extensionを減らすことがビルド時間短縮において大半を占めてることがわかる。
http://www.slideshare.net/AvitoTech/objectivec-swift-avito

extensionのによる可読性を諦めてビルド時間を優先してなるべくextensionを使わないようにするのは周りの優秀なiOSエンジニアはちらほらやってるやつがいる。
本格的なiOSプロジェクトではソースコードが肥大化し、ビルド時間を短縮することはかなり重要になってくるからな。

もちろん無駄なextensionを減らすだけであって、String+◯◯のような必要なextensionは使ったりする。

78
デフォルトの名無しさん (ワッチョイ 039a-ijxz)[]   投稿日:2016/10/31 01:47:57  ID:m1eOJOQ80.n(3)
>75
あと、それ書き込むくらいなら「swift extension build time」でググれば速攻でてくるから。。エンジニアの基本でしょ。。w

79
デフォルトの名無しさん (ワッチョイ 039a-ijxz)[]   投稿日:2016/10/31 01:53:06  ID:m1eOJOQ80.n(3)
>76
そうしたいところなんだが・・・・・
Swiftyな書き方ばかりしてると異常にビルド時間伸びたりしちゃうもんなんだよね・・。
趣味の小さいプロジェクトならいいけど、
本格的なiOSプロジェクトって基本的にかなりの大きさになるもんだから、
最新で最強に特盛りなMacbook Proつかってもクリーンビルド10分とかかかって生産性クソ下がるもんだよ。ほんと、仕事にならないっていうレベルで。
結果、iMacかMac Proを会社に買ってもらうしかなくなったりするんだけど、その交渉がまた楽ではないんだよな。。

だから、まじで突き詰めてくとSwiftyに自由に書いてるだけじゃなく、ビルド時間も考慮した書き方もしていく必要があるよ。
コメント3件

80
デフォルトの名無しさん (ワッチョイ 6362-Jz20)[sage]   投稿日:2016/10/31 02:23:37  ID:y/KHbdbU0.n(2)
だめだこいつどうにかしないと…

81
デフォルトの名無しさん (ワッチョイ e3c9-3xFl)[sage]   投稿日:2016/10/31 04:34:12  ID:jkUzecbb0.n
>79
コメント無駄なので書きませんとか
hoge = fuga; .... // こことか
hage = shine; ... // こことか
abe = mao; ..... // こことか
そろえる時間とか無駄だよな
コメント1件

82
デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20)[sage]   投稿日:2016/10/31 08:31:13  ID:Yjtyu49Gp.n
業務でswift採用を検討とかバカなのか
そんなのswift1.xの時からずっと言われてたろ

83
デフォルトの名無しさん (ワッチョイ 133c-ijxz)[]   投稿日:2016/10/31 09:32:16  ID:NdNVw3ey0.n
>79
フレームワークである程度分割すればいいんじゃねーの?

84
デフォルトの名無しさん (スプッッ Sdff-O9pn)[sage]   投稿日:2016/10/31 09:59:50  ID:paNpTD9Xd.n
>79
状況はわかるし、気持ちもわかる
でもやってる事はどちらかと言うと悪手のように思うよ

フルビルドに10分とか、ちょっと大きいプロジェクトだとcでも普通だよ。
でもフルビルドなんて1日に一回もやらないでしょ?
やる必要のあるときにはお昼とかお茶にしちゃう

もし、煩雑にフルビルドが必要ならコンパイル単位の切り分けが不適切
プロジェクトリーダーと相談して分割しなおそう



>結果、iMacかMac Proを会社に買ってもらうしかなくなったりするんだけど、その交渉がまた楽ではないんだよな。。

これは大変だけど効果的で本質的
高い給料払ってるプログラマがコンパイル時間短縮のために、
あえて苦労して品質の低いコードを書いてるとかもったいなすぎる
その結果出来上がるのがメンテナンス性の悪いソースだし

大変だけどトータルで見ると頑張って高速のマシンを買ってもらう価値あり
レンタルもありだよ
「武器は良いものを下さい」と言って上司を口説いてる「竹槍と根性だけでは勝てません」て
その代わり上司がそのまた上司に説明できるように生産性何パーセントアップとか数字の入った資料は用意している
コメント1件

85
デフォルトの名無しさん (アウアウカー Sa7f-Jz20)[sage]   投稿日:2016/10/31 10:12:37  ID:MowifMDBa.n
ビルド10分が生産性のボトルネックになってるってw

86
デフォルトの名無しさん (スップ Sdff-Jz20)[]   投稿日:2016/10/31 12:03:52  ID:sVVQsMs5d.n
>81
「そろえる時間とか」の「とか」は、「そろえる時間」以外の何?

87
デフォルトの名無しさん (ワッチョイ 133c-xElR)[sage]   投稿日:2016/10/31 14:17:53  ID:VXqz7JcR0.n

88
デフォルトの名無しさん (ワッチョイ 638f-Jz20)[sage]   投稿日:2016/10/31 23:28:17  ID:zObjWshz0.n
プログラマーはフレームワークのバグを疑い、コンパイラを疑い、
ハードを疑い、最後の最後に結局自分が悪かったと気づく。

結局大概の問題は自分起因だと気づくんだよ。
もっと自分を疑え。
コメント1件

89
デフォルトの名無しさん (ワッチョイ 6362-Jz20)[sage]   投稿日:2016/10/31 23:58:57  ID:y/KHbdbU0.n(2)
おつおつ

90
デフォルトの名無しさん (スプッッ Sdff-O9pn)[sage]   投稿日:2016/11/01 08:37:49  ID:SqrJLIAed.n
>88
七度探して人を疑え
プログラマに限らないようで

91
デフォルトの名無しさん (ワッチョイ 039a-ijxz)[]   投稿日:2016/11/02 02:53:43  ID:0L1TooRo0.n(2)
>84
azs..

今回のAppleの発表で5KのiMac4万安くなったというのもあり、
交渉する勇気がでました
コメント1件

92
デフォルトの名無しさん (ワッチョイ 039a-ijxz)[sage]   投稿日:2016/11/02 02:59:20  ID:0L1TooRo0.n(2)
差分ビルド効いてても、コンパイル単位の切り分けってビルド時間短縮につながる?

93
デフォルトの名無しさん (ワッチョイ fb3c-nx48)[]   投稿日:2016/11/02 12:52:27  ID:vzQ+b2bv0.n
試して報告してくれ。

94
デフォルトの名無しさん (ササクッテロリ Sp7f-BXGM)[sage]   投稿日:2016/11/02 14:38:43  ID:rHHkFyogp.n
メリット:
ObjCに比べてコード量が減って作業効率が上がります

デメリット(これは言わない):
ObjCに比べてビルド時間が伸びて作業効率が下がります
ObjCに比べてバイナリ容量(IPAサイズ)が増えてDL時間が長くなります
ObjCに比べて動作性能が悪く実行時にもったりとした動作になります
ObjCに比べてXcodeバージョン更新に伴うコードメンテ量が多く保守工数が増えます

商用ソフトウェアでSwift採用を交渉して通ったらびっくりするよ
それ以前に、Swift採用を交渉してきたらプロマネが(悪い意味で)びっくりするかもしれんけど
コメント2件

95
デフォルトの名無しさん (ワッチョイ 3f13-3xFl)[sage]   投稿日:2016/11/02 16:40:29  ID:db1quxwb0.n
>94
製品の良し悪しは言語で決まる訳じゃないのに

96
デフォルトの名無しさん (スプッッ Sdff-O9pn)[sage]   投稿日:2016/11/02 18:00:18  ID:RCRK3FtZd.n
>91
おう、前向きやん、頑張れ!

一つアドバイスするなら、
すぐに買ってもらえなくてもがっかりしないこと
来年買ってもらえたら超絶ラッキーくらいに思っとけ

手間暇かかるし、心も挫けそうになるけど、
やらないと何年たっても買ってもらえないからな

97
デフォルトの名無しさん (ササクッテロル Sp7f-O9pn)[sage]   投稿日:2016/11/02 18:29:15  ID:UuGtpbllp.n
>94
>ObjCに比べて動作性能が悪く実行時にもったりとした動作になります
他は同意出来るけどこれはどうなの?
WWDCではSwiftの方がすげー早いよって紹介してたんだろ?

98
デフォルトの名無しさん (スプッッ Sdff-Jz20)[sage]   投稿日:2016/11/02 19:37:29  ID:V5jMGm9Nd.n
そりゃスイフトのほうが早いだろう

99
デフォルトの名無しさん (ワッチョイ b38c-BXGM)[sage]   投稿日:2016/11/02 21:24:36  ID:RaymUkXW0.n
swift betaで限定条件下ならばobjcよりswiftのが早かった
これは、基底クラスのSwift ObjectクラスがObjC NSObjectクラスよりオブジェクトを構成する要素が少ないからかな

ただ、それからランタイムのバグだの、言語仕様のモダン化だの、もりもり改変して劣化の一途よ
NSHogeとHogeの透過変換とか、for eachでイテレータ利用とか、同じことするのにオブジェクト生成や関数コールが増えるよ
for eachで+2づつイテレートしたらC-style forより1,000倍遅かったのにはびっくりしたわ、+1づつなら同程度速度だったけどさ

ObjCのクソ文法を崇める気はさらさらないけど、Swiftの多大なデメリットを直視しないのもどうかと思う
ユーザデメリットの容量/性能を気にしない商用開発がもしあるならSwiftでも良いんだけどねー、趣味PGのおもちゃとしては楽しい
コメント4件

100
デフォルトの名無しさん (ワッチョイ d7ba-Jz20)[sage]   投稿日:2016/11/02 21:26:12  ID:xZyO7jMI0.n
林檎製アプリもswiftに置き換えてるのに

101
デフォルトの名無しさん (ワッチョイ d742-0DI1)[sage]   投稿日:2016/11/02 22:17:16  ID:aJUXU1mT0.n
性能下がってきたなんて話は今のところ聞かないが

102
デフォルトの名無しさん (ワッチョイ 133c-O9pn)[sage]   投稿日:2016/11/02 23:38:41  ID:ihp4ITm60.n
まだコア部分はObj-Cだからでしょ

103
デフォルトの名無しさん (ワッチョイ fd8c-AEdt)[sage]   投稿日:2016/11/03 00:05:58  ID:YyMYD2K/0.n
なぜ3で削除されたC-style forからの性能劣化を具体例に出したのになかったことにするのか
前スレだか前々スレだかで実測して数値も出した情報だぞw
コメント1件

104
デフォルトの名無しさん (ワッチョイ 7162-DGmA)[sage]   投稿日:2016/11/03 00:14:56  ID:BOny4tTs0.n(4)
Swiftは煽り抜きでダメだなもう
ガバナンスも利いてないしめちゃくちゃ
文法も思想もとっちらかったクソ言語に成り果ててる

105
デフォルトの名無しさん (ワッチョイ bc42-8n5s)[sage]   投稿日:2016/11/03 06:48:25  ID:GxO0spX30.n
>103
ちゃんとstride使ってるか?

106
デフォルトの名無しさん (ワッチョイ 5e93-m5qj)[sage]   投稿日:2016/11/03 06:52:50  ID:1srrFQD30.n
>99
つまりは酸っぱい葡萄が大好きな狐さん?

107
デフォルトの名無しさん (スプッッ Sd78-m5qj)[sage]   投稿日:2016/11/03 07:24:57  ID:UUNhEaPVd.n(5)
>99
また聞きかじりでdisりたいだけのしょぼい奴が来たか

>swift betaで限定条件下ならばobjcよりswiftのが早かった
>これは、基底クラスのSwift ObjectクラスがObjC NSObjectクラスよりオブジェクトを構成する要素が少ないからかな

基底クラスの要素数が実行速度に影響するなんてどこの言語の話だよ

そもそもswiftは「クラスより構造体」で、標準ライブラリもほとんど構造体に置き換えられてるぜ



>for eachで+2づつイテレートしたらC-style forより1,000倍遅かったのにはびっくりしたわ、+1づつなら同程度速度だったけどさ

それはコードの書き方が下手
どうせどっかの聞きかじりだろ?自分で試してなくてww
悔しかったらそのfor each文とやらを書き込んでみろ
みんなで実行速度測って笑ってやるから

108
デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)[sage]   投稿日:2016/11/03 08:21:24  ID:w1NhWsHTp.n(2)
煽りたいだけの愉快犯っぽい

betaが早かった理由はクラスじゃなく構造体だからって論でおk?
基底オブジェクトが違うからって本質から外れてないから構わんけど

前スレ漁るか、C-style for削除のProporsalのサンプルの通りだから自分でどうぞ
コメント2件

109
デフォルトの名無しさん (ワッチョイ 718f-DGmA)[sage]   投稿日:2016/11/03 09:37:42  ID:zeI07SjJ0.n(2)
obj-c静的言語を装った動的言語だから。
メソッド呼び出しに当然オーバーヘッドがあるからswiftが早いのは当然。

でも高速さが必要なところはcで書くという柔軟さを内包してた。

あれ、swift擁護しようとしたらobj-cが良さげになってきた
コメント1件

110
デフォルトの名無しさん (スプッッ Sd78-m5qj)[sage]   投稿日:2016/11/03 12:43:32  ID:UUNhEaPVd.n(5)
>108
>煽りたいだけの愉快犯っぽい

そうだよ、俺は聞きかじりの知識で何かをdisって
自分が偉い気分になってるやつをいじめるのが好きなんだ

例えばさ

>betaが早かった理由はクラスじゃなく構造体だからって論でおk?
>基底オブジェクトが違うからって本質から外れてないから構わんけど

こっちはいいけど、そっちこそいいのか?
>99での主張である
ベータは速かったかもしれないが本実装では遅くなる
の論拠を自分で否定してることになるんだぞ?

クラスから構造体への置き換えが進んだSwift3ではさらに速くなっちゃうぞ?
本当にそれでいいの???

>前スレ漁るか、C-style for削除のProporsalのサンプルの通りだから自分でどうぞ

ほらね逃げた
世の中にforのサンプルなんていくつあると思ってるんだ?
それにforはデータ構造と一緒に考えなきゃ意味がないだろ?
まさか空ループ回してるんじゃないだろ?
あなたが、実際に動かしてみたコードで検証しなきゃ意味ないんだよ。ここにコピペしてみろよ
何も1000倍かかったって事実を否定したいってわけじゃないんだぜ
その事実を確認してみたいだけだ

まさかfor文一つ人目にさらす事が出来ない臆病者なのか?
自分でやってみてないから動作時間の測定方法知らないとかそういうわけじゃないんだろ?
コメント1件

111
デフォルトの名無しさん (スプッッ Sd78-m5qj)[sage]   投稿日:2016/11/03 12:44:46  ID:UUNhEaPVd.n(5)
>109
心配すんなって
swiftからでもcは使えるから

112
デフォルトの名無しさん (ワッチョイ 7162-dKGq)[sage]   投稿日:2016/11/03 13:12:33  ID:BOny4tTs0.n(4)
それはSwiftのwithout Cに反するので本末転倒
却下

113
デフォルトの名無しさん (スッップ Sd28-DGmA)[sage]   投稿日:2016/11/03 13:27:08  ID:CPk3BZK9d.n(2)
必要なかったのに政治的にぶっ込もうとしてグダグタになってる典型例だな
前向きだったやつらも愛想尽き始める

114
デフォルトの名無しさん (ワッチョイ 714e-dKGq)[sage]   投稿日:2016/11/03 13:46:18  ID:0SaHyNen0.n
without C の真意はポインタの隠蔽?
コメント2件

115
デフォルトの名無しさん (ワッチョイ d0c9-dKGq)[sage]   投稿日:2016/11/03 14:03:19  ID:Uhidgpr40.n
>108
前にこのスレで出てたfor文のベンチマークもどきならベンチマークとして計測の仕方がまずくてベンチマークになってなかった
面倒くさいから黙ってたけど
コメント2件

116
デフォルトの名無しさん (スッップ Sd28-DGmA)[sage]   投稿日:2016/11/03 14:11:38  ID:CPk3BZK9d.n(2)
>114
どうなんだろうね
表面的な見た目も無駄にwithout Cにしようとしてるきらいがあるけど
コメント1件

117
デフォルトの名無しさん (ササクッテロリ Spbd-AEdt)[sage]   投稿日:2016/11/03 14:32:53  ID:w1NhWsHTp.n(2)
>115
Swift Sandboxでのサンプルがダメってんなら提供はむずいのう
ELF読み込み時間を考慮してないとか、単独試験になってないとか、評価回数が少なすぎとか、そりゃツッコミどころはあろうよ

ポインタ文法も薄目に見たら表面上だから・・・
宣言(予約語)、制御文、演算子をC/C++から違うものにしたいんだろうなぁと思う
コメント1件

118
デフォルトの名無しさん (スプッッ Sd78-m5qj)[sage]   投稿日:2016/11/03 14:50:34  ID:UUNhEaPVd.n(5)
>115
そうだよなぁ

おれ>110で人の事叩いてみせてるけど
自分自身for文単体の実行速度計測なんてできる気がしない

下手なサンプルコード書くとコンパイラに定数展開されて実行時間ゼロにされちゃうし
最適化避けにio入れたら何測ってるか意味不明だし

最適化オプションを切るという手もあるけど、それじゃ最適化してリリースする実プログラムにとっては意味のない数字にしかならないし

計測方法もタイムスタンプ取るだけだとosやコンパイラに誤魔化されちゃう可能性あるし
プロファイラはやっぱり細かいところを見ようとするとサンプリング負荷の方が大きくなっちゃうし


俺自身は言語としての処理速度にはあんまり興味を持てないや
取り敢えず動くプログラム作ってみて、後はプロファイラ見ながら動かしてみて
不自然に遅いところがあったら手直し
それでイライラしない速度になったらOK

別に言語や開発環境が変わってもやる事は変わんないなぁ

119
デフォルトの名無しさん (スプッッ Sd78-m5qj)[sage]   投稿日:2016/11/03 14:58:28  ID:UUNhEaPVd.n(5)
>117
え?、、、、、、

コード読んでないけど、それ、forの速度比較にならないよ

120
デフォルトの名無しさん (ワッチョイ 7162-dKGq)[sage]   投稿日:2016/11/03 15:34:45  ID:BOny4tTs0.n(4)
>116
「無駄に」には禿同

121
デフォルトの名無しさん (ワッチョイ ef53-nJsM)[]   投稿日:2016/11/03 21:07:23  ID:GA4nbDQd0.n(2)
>114
ビット、バイトレベルの操作はCに任せて、もっと大きな束(Class、Struct)を操作することに専念するという意図だと思ってる
低レイヤーの処理をSwiftで置き換えようという動きはほとんど見られないからな
URLSessionも内部ではCURL使ってるし

122
デフォルトの名無しさん (ワッチョイ ef53-nJsM)[]   投稿日:2016/11/03 21:11:27  ID:GA4nbDQd0.n(2)
SwiftはObjCより役割が明確になった
低レイヤーもゴリゴリかけるObj志向より
低レイヤーはCで良いです。Obj志向持ち出さないといけないくらい大規模開発になったらSwiftから操作します
本当に開発車が求めてたのはこっちだと判断したのだろう
コメント1件

123
デフォルトの名無しさん (ワッチョイ 718f-DGmA)[sage]   投稿日:2016/11/03 22:36:47  ID:zeI07SjJ0.n(2)
>122
いやいやcとの連携を考えたら圧倒的にobjcでしょ。swiftからcの構造体とか関数を扱うのってそんなに楽だったっけ?
コメント1件

124
デフォルトの名無しさん (ワッチョイ 7162-dKGq)[sage]   投稿日:2016/11/03 22:52:01  ID:BOny4tTs0.n(4)
だからwithout Cを掲げといて困ったらCとか何なの...
Swiftは右往左往しすぎ

125
デフォルトの名無しさん (ワッチョイ fd10-7tG6)[sage]   投稿日:2016/11/04 00:57:42  ID:qpsq4Ku/0.n
C++で書かれたライブラリを使うときはObj-C経由になって面倒だよね、自分でラッパー書かないといけないし
まじめに設計すればいいのだろうけど、設計コストが割けない場合は面倒臭いからObj-C++のラッパークラスにビュー操作とかたくさん入れるみたいなぐちゃぐちゃのコードができそう

126
デフォルトの名無しさん (ワッチョイ d0c9-X2H6)[]   投稿日:2016/11/04 01:55:19  ID:Y6RBUWTc0.n
Objc++ってc++14の機能とか使える?
コメント1件

127
デフォルトの名無しさん (ワッチョイ 5e93-m5qj)[sage]   投稿日:2016/11/04 06:49:07  ID:IQwZZLFC0.n(2)
>123
うん、ヘッダファイルをインクルード(import)するだけで
Swiftプログラムの中で普通にcの関数や構造体が使える

最初構えちゃったけど、実際やってみると拍子抜けするくらい簡単にcのプログラム呼び出せちゃう

JavaのJNIに比べると格段に楽


c++はワンクッション必要だけどそれも3日で気にならなくなるレベル

128
デフォルトの名無しさん (ワッチョイ 7162-dKGq)[sage]   投稿日:2016/11/04 08:38:39  ID:f4ftpOMT0.n
もはやObjectivc-Cでいいじゃねぇかっていう...
コメント3件

129
デフォルトの名無しさん (スップ Sd78-DGmA)[sage]   投稿日:2016/11/04 08:42:12  ID:2pY38tv9d.n
だめでふ!

130
デフォルトの名無しさん (スッップ Sd28-DGmA)[sage]   投稿日:2016/11/04 09:19:39  ID:YHeqrh8yd.n
>128
それな
でも政治的に無理

131
デフォルトの名無しさん (ワッチョイ 5e93-m5qj)[sage]   投稿日:2016/11/04 09:35:38  ID:IQwZZLFC0.n(2)
>128
俺がObjective-C使えないから却下
コメント1件

132
デフォルトの名無しさん (スプッッ Sd78-DGmA)[sage]   投稿日:2016/11/04 09:48:35  ID:tOE/Rf6pd.n
>131
雑魚おつ!

133
デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)[sage]   投稿日:2016/11/04 14:21:14  ID:jHHFhRr8p.n
swiftpp誰かメンテしろよ、、、

134
デフォルトの名無しさん (ワッチョイ 3b3c-A9qr)[]   投稿日:2016/11/04 15:05:36  ID:57dKQ7qw0.n
>126
objc++ がというよりも、clang が使えるものは全部使える。inline smalltalk の書ける c/c++ でしかないのだから。
Xcode の c/c++ 部分のオプションとか一通り見てみるといいよ。
コメント1件

135
デフォルトの名無しさん (ワッチョイ 653c-DGmA)[]   投稿日:2016/11/04 15:41:44  ID:AA4S5DKA0.n
>134
「オプションとか」の「とか」は、「オプション」以外の何?

136
デフォルトの名無しさん (ワッチョイ ef53-nJsM)[]   投稿日:2016/11/04 22:14:16  ID:wN0RTOka0.n(2)
>128
ObjCの命名規約をSwiftに擦り合せるだけで平和になれるかも?

まあそんなこと冗談でも言いたくないんだけどな
主にPOP、generics、が便利すぎてとてもObjCでいいじゃねえかとか言えない

137
デフォルトの名無しさん (ワッチョイ ef53-nJsM)[]   投稿日:2016/11/04 22:18:57  ID:wN0RTOka0.n(2)
Swiftに足りないのはobjc_setAssociatedObjectくらいだなあ
あれ相当が純Swiftにも欲しい

138
デフォルトの名無しさん (ワッチョイ 653c-dKGq)[sage]   投稿日:2016/11/04 23:22:05  ID:fKNeNx+T0.n
純Swiftってなら、kvoとかも欲しいわ
removeObserverを連続で読んでもクラッシュしないようにして欲しい

139
デフォルトの名無しさん (ワッチョイ fdad-AEdt)[sage]   投稿日:2016/11/04 23:22:36  ID:E6UScSsN0.n
任意のKVOとかJS等々のテケトーな動的言語じゃないのに使いたくない><
気分的な問題もさておき、APIのI/Oで型が保証されないってのは言語仕様で安全(笑)と言えなくなるのではないかと
なお、GenericsはObjCにも随分前にバックポートされたダルルォ
コメント1件

140
デフォルトの名無しさん (ワッチョイ ef53-nJsM)[]   投稿日:2016/11/05 05:37:01  ID:Z0XZZi850.n
ObjC の lightweight generics と Swiftのgenericsを一緒にしたらあかん
前者はただの型安全、後者は強力なコード省略機能だから

141
デフォルトの名無しさん (ワッチョイ 653c-8n5s)[sage]   投稿日:2016/11/05 11:25:04  ID:J7M9MHD00.n
Swift の generics は generics としては出来損ないだからな

142
デフォルトの名無しさん (スププ Sd28-m5qj)[sage]   投稿日:2016/11/05 11:49:58  ID:udcWDT/td.n(2)
>139
ま、IOが型に限らず安全じゃないのは根源的な問題だから
受け取ったデータをどうやって安全な型に変換して
持ってこれるようにするのかが
言語仕様屋さんとライブラリー設計屋さんの腕の見せ所

143
デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)[sage]   投稿日:2016/11/05 14:31:34  ID:uB6+UJGhp.n(2)
つまり根源的(笑)には動的型付け言語最強ってことだ

rustくらい凶悪で安全な型推論と型変換があればなぁ
それをオブシーに毛が生えた程度のスイフトに求めるのは酷だけども
コメント1件

144
デフォルトの名無しさん (ワッチョイ 653c-8n5s)[sage]   投稿日:2016/11/05 15:50:28  ID:4esgQXgk0.n
Rustをパクろうという恥も外見もないプロポーザルが多数あったけど、
ベースがオブシーのSwiftに取り込めないだろうな

145
デフォルトの名無しさん (スププ Sd28-m5qj)[sage]   投稿日:2016/11/05 15:52:39  ID:udcWDT/td.n(2)
>143
煽りにしてももう少し捻ろうよ

各言語は設計者の決めた土俵で最強を目指している
そしてその土俵は言語ごとに驚くほど違う

違う土俵を比べてなんか意味があるのか?

146
デフォルトの名無しさん (ワッチョイ 7162-dKGq)[sage]   投稿日:2016/11/05 20:38:23  ID:UUL9l/XE0.n
Swiftは一体何を目指してるのかさっぱりわからんな
疲れるわいい加減

147
デフォルトの名無しさん (ワッチョイ bc42-8n5s)[sage]   投稿日:2016/11/05 22:37:03  ID:Egd9oR020.n
そりゃJavaの後釜だろう

148
デフォルトの名無しさん (スップ Sd78-DGmA)[sage]   投稿日:2016/11/05 22:41:52  ID:BUcUWGbDd.n
えっ?

149
デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)[sage]   投稿日:2016/11/05 22:52:10  ID:uB6+UJGhp.n(2)
言語仕様屋さんは土俵を作ってるんだろ?
しかしgoのdeferとかパクってて今さら恥も外見もない

狙ってるのはnodejsとobjcの後釜だったろ(過去形
Javaの後釜はkotlinに任せた

150
デフォルトの名無しさん (ワッチョイ bc42-8n5s)[sage]   投稿日:2016/11/06 00:12:40  ID:ezrbx1w50.n
Kotlinはガチガチ感が足りない

151
デフォルトの名無しさん (ワッチョイ d0c9-dKGq)[sage]   投稿日:2016/11/06 01:05:29  ID:vkxhzVrT0.n
アイデアパクるのが恥なら恥のない言語なんて無い

152
デフォルトの名無しさん (ワッチョイ 718f-DGmA)[sage]   投稿日:2016/11/06 10:14:23  ID:4L6+G/1b0.n
むしろいい仕様は全然パクりまくっていいと思う

153
デフォルトの名無しさん (ワッチョイ bc42-8n5s)[sage]   投稿日:2016/11/06 17:14:18  ID:WBLFwz5S0.n
おかげで最近は似たり寄ったりのが乱立することに
コメント1件

154
デフォルトの名無しさん (ワッチョイ d0c9-X2H6)[]   投稿日:2016/11/06 20:15:09  ID:v3i1/z/a0.n
>153
そんなに似てるのあるかね?

155
デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)[sage]   投稿日:2016/11/06 21:12:20  ID:OgnHco5Ep.n
PerlとPythonとRubyとか

多少似たり寄ったりでも、それぞれ特化した特徴持ってるるけどな
Swiftの特徴はモダンな文法

156
デフォルトの名無しさん (ワッチョイ 1c7b-LXwf)[sage]   投稿日:2016/11/06 22:29:55  ID:/loPCIEU0.n(2)
最近って
もう20年位経ってなかったっけ

157
デフォルトの名無しさん (ワッチョイ 1c7b-LXwf)[sage]   投稿日:2016/11/06 22:33:39  ID:/loPCIEU0.n(2)
ああすまん別人のレスだった

158
デフォルトの名無しさん (ワッチョイ 91c9-GVdM)[sage]   投稿日:2016/11/07 04:20:28  ID:EaPQMBZD0.n
perlとrubyは似てるけど
それらとpythonは似ても似つかない

159
デフォルトの名無しさん (ワッチョイ 7162-dKGq)[sage]   投稿日:2016/11/07 22:48:12  ID:pS9bGIHw0.n
モダン()って何ですか?

160
デフォルトの名無しさん (ワッチョイ e6d4-6WlR)[]   投稿日:2016/11/07 23:29:17  ID:7sl1kZEM0.n
19世紀末から20世紀頭にかけた近代的な文化や思想のことだよ。

161
デフォルトの名無しさん (ワッチョイ d0c9-dKGq)[sage]   投稿日:2016/11/07 23:44:55  ID:HJ3poSG10.n
ポストモダン言語

162
デフォルトの名無しさん (ワッチョイ 653c-8n5s)[sage]   投稿日:2016/11/08 00:12:18  ID:1VnvhNy/0.n
ジョブズは死んだんじゃなくて19世紀にワープしたんだよな
そこで手に入れた言語がSwift
これで38世紀に起きる世界の破滅を救う必要がある

163
デフォルトの名無しさん (スプッッ Sd2d-DGmA)[sage]   投稿日:2016/11/08 07:59:40  ID:rLbbfQNtd.n
ふーん

164
デフォルトの名無しさん (スプッッ Sd78-m5qj)[sage]   投稿日:2016/11/08 09:57:02  ID:X5dOVA43d.n
swiftのrubyっぽい書き方は好き
ジェネリクスもc++の複雑怪奇さよりはまだ理解しやすいと思う
あとはperl並みの柔軟な正規表現処理をパクってくれれば、俺的にはかなり満足

言語では無いがXCodeで未だにswiftのリファクタリングアシスト出来ないってどういう事?
もっと本気出せ!Apple

165
デフォルトの名無しさん (ワッチョイ 718f-DGmA)[sage]   投稿日:2016/11/08 10:38:31  ID:afLUgDEA0.n
まぁobjcよりはDSLが書きやすい言語ではあるね。rxSwiftとか触った感想

166
デフォルトの名無しさん (ワッチョイ 5e93-m5qj)[sage]   投稿日:2016/11/09 23:28:51  ID:LFfTZCZj0.n
>99
古い話を蒸し返して悪い

>for eachで+2づつイテレートしたらC-style forより1,000倍遅かったのにはびっくりしたわ、+1づつなら同程度速度だったけどさ


ソース見てないから想像しかできないけど

for文だけで1000倍遅いと言うのはやっぱり変

速度計測が正しいと仮定して
+1で同速だから+2で1000倍違うのであればコンパイラの最適化問題の可能性が高いと思う

+2にするためにfor eachの中だけでifとか3項演算子とかの条件判断してんじゃ無いかな?

定数や単純な計算に展開できるようなfor文だったら
最適化が崩れるだけで1000倍くらいは軽く違ってくる

もちろん最適化しやすいかどうかは言語仕様の重要なポイントだけど
+2のc style forと比較すべきは

対象データ配列.lazy.filter.foreach
とか
for in stride
とかじゃないかな?
コメント1件

167
デフォルトの名無しさん (ワッチョイ 93c9-U0zX)[]   投稿日:2016/11/10 00:35:29  ID:il4z8U8D0.n
jump 1984

168
デフォルトの名無しさん (ワッチョイ 033c-teht)[sage]   投稿日:2016/11/10 01:04:16  ID:CuQR47GV0.n
wow! swift is very cool language!!

169
デフォルトの名無しさん (ワッチョイ 033c-teht)[sage]   投稿日:2016/11/10 09:31:14  ID:R/sSrOg00.n(2)
言語仕様の変化がswift(迅速)

170
デフォルトの名無しさん (ササクッテロリ Sp2f-PwKp)[sage]   投稿日:2016/11/10 13:40:21  ID:rv8wSLjJp.n
>166
自分でコード書いて、ほら+2でも早いじゃんって証明しよう

171
デフォルトの名無しさん (ワッチョイ 033c-teht)[sage]   投稿日:2016/11/10 15:15:22  ID:R/sSrOg00.n(2)
swift 2.2
http://swiftlang.ng.bluemix.net/#/repl/58240e6cdee52b574593575a
c-style   : 98ms : 25000000
range    : 1287ms : 25000000
c-style(emp): 114ms : 0
range(emp) : 1328ms : 0

swift 3
http://swiftlang.ng.bluemix.net/#/repl/58240f8bdee52b574593575d
range   : 1906ms : 25000000
range(emp) : 1922ms : 0

こんな感じ?
ちゃんと計測になってるか分からないけど
コメント1件

172
デフォルトの名無しさん (スププ Sd1f-9MLS)[sage]   投稿日:2016/11/10 18:17:20  ID:ftL23tGyd.n
>171
さんきゅ、これで検証できる

手元のmacMiniでmacOS用コンソールアプリとして実行して見た
手打ちコピペなのでカウント表示は省略

リリースモード(-O)
c-style : 12ms
range : 8ms
c-style(emp):12ms
range(emp): 8ms

デバッグモード(-Onone)
c-style : 122ms
range : 1506ms
c-style(emp):122ms
range(emp): 1485ms

実行時間は実行の度に10%程度揺らぐが、全体的に増減する
(バックグラウンドプロセスの影響?)

同じく時間計測が正しくできてるかどうかは自信なし
あくまでも話のネタとして
コメント1件

173
デフォルトの名無しさん (ワッチョイ 27c9-dJcJ)[sage]   投稿日:2016/11/10 20:10:35  ID:axPg+CzB0.n
どうでもいいけど range といわれると for i in 0..<n { } を想像する

174
デフォルトの名無しさん (ワッチョイ 0f93-9MLS)[sage]   投稿日:2016/11/11 06:58:10  ID:VxmMYonc0.n
(最近2chをStackOverflowと間違えてる人達がいるんじゃないかと思うんだ)

175
デフォルトの名無しさん (ワッチョイ 6b17-9MLS)[sage]   投稿日:2016/11/11 12:14:57  ID:hH3mlRl+0.n
専門板はコード載せたり質問したり普通だと思うがな

176
デフォルトの名無しさん (スププ Sd1f-9MLS)[sage]   投稿日:2016/11/11 12:24:16  ID:IRS0wJtrd.n
>172
やっぱり納得できん!
コンパイラかOSにごまかされてるかもしれない

カウント値を2倍10倍にして見た、、、
計測値も相応に増えてる→OK!

うちの手元環境では今回のコードを最適化しててもループも回ってるようだし計測も出来ているようだ


でもNSDateって汎用時計で計測用じゃないから最適化バリアとか張ってなさそう
いつか嘘を付かれるかも


どうやって実行時間測るのが安全なんだろう?
XCTestのmeasurePerformanceBlockあたりかな?

177
デフォルトの名無しさん (ササクッテロラ Sp2f-PwKp)[sage]   投稿日:2016/11/11 14:13:36  ID:Vk/i9jiNp.n
timeコマンドでも使えば?
libSwift.soの読み込み分も加算されると思うけども
ObjCとSwiftを比較しないならまぁ条件は一緒だろ

178
デフォルトの名無しさん (ワッチョイ 0f93-9MLS)[sage]   投稿日:2016/11/12 09:36:12  ID:s1ZCIfoi0.n
乙おつ

c-style forを使いたい為にswift2.xに留まる程の速度差は無いてことだな
むしろ新しい書き方の方が速いこともある

ループ内でカウンタをいじらないなら
単純にfor in strideに置き換えて構わない

179
デフォルトの名無しさん (ワッチョイ 3b53-yNdZ)[]   投稿日:2016/11/12 11:08:55  ID:lF8fQe3F0.n(3)
あのさ、マジで応用アプリケーションのレイヤーでforが遅いとかifが遅いとか鈍臭い話するの止めてくれるか?
話のタネとしてもどう反応して良いかわからん。お前馬鹿か?って反応して良いならいくらでも言えば良いがそうじゃないんだろ?
SwiftでOS書くつもりか?
forやifで悩むよりさっさとアプリ書き上げて画面突っかかるところをInstrumentsで解析してピンポイントにチューニングしてろや
基本ソフト書くレイヤーの特権階級だけが意識してれば良い事なんだよそれは
なんのためにその人たちがチューニングして生産性あげてるのか全くわからなくなる
コメント3件

180
デフォルトの名無しさん (ワッチョイ 3b53-yNdZ)[]   投稿日:2016/11/12 11:13:02  ID:lF8fQe3F0.n(3)
×生産性あげてる
○抽象度を上げて生産性を上げてる
微妙に自分の言いたい事が足りなかったので補足

181
デフォルトの名無しさん (ササクッテロリ Sp2f-PwKp)[sage]   投稿日:2016/11/12 11:31:47  ID:txrMIHhIp.n
>179
フフってなった
そういう反応すればいいんじゃないかな

画面のカクツキとかは、アニメーションが足りてないせいかな
Apple(iOS)は昔からアニメーション等々で性能悪を誤魔化す手法を模索してきたんだから
Swiftでも多少のデメリットも誤魔化す手法をAppleから提示して欲しい

182
デフォルトの名無しさん (ワッチョイ 6b17-9MLS)[sage]   投稿日:2016/11/12 12:19:42  ID:9t6wr9zS0.n
ここはアプリ開発スレじゃなくてプログラミング言語のスレだから下位レイヤーの話をあれこれ話し合ってもいいと思うけどな
コメント1件

183
デフォルトの名無しさん (ワッチョイ 3b53-yNdZ)[]   投稿日:2016/11/12 19:17:05  ID:lF8fQe3F0.n(3)
応用アプリケーションのレイヤーで意識するべき事もわかってないくせに「先輩、cスタイルのfor文って実は遅いんですよ!」とか言っちゃって危険人物扱いされる人間が出ないように釘刺したかったんや
上で奇妙な事言ってる奴がいるがスルーするぞ

若い奴は上の頭でっかちの話は気にしないでとにかく手を動かせ
んでInstrumentsで発見した知見を蓄えろ。意外とあのオブジェクトのあのメソッドは遅いとか出てくるはずや
上で出ているfor文が問題になるケースは万に一つにもありえんと断言できる惑わされず手を動かせ
メソッド名とかこういうのの揚げ足取りが強くて手が動かせないとかは絶対に不毛だからないようにしろ
コメント1件

184
デフォルトの名無しさん (ササクッテロラ Sp2f-PwKp)[sage]   投稿日:2016/11/12 20:36:12  ID:89uv6TPmp.n
数行の検証コードも書けないのに、日本語は長文だなw
長いから3行でおk

185
デフォルトの名無しさん (ワッチョイ a766-9MLS)[sage]   投稿日:2016/11/12 21:13:25  ID:VlXDpHXF0.n
>Apple(iOS)は昔からアニメーション等々で性能悪を誤魔化す手法を模索してきた
とか言っちゃってる人はこちらの世界には向いてないから
あのボタン押しても無反応で、一秒ぐらい待って「???」ともう一回ボタン押すと
キャッシュされた動作でいきなり2つ画面が進んじゃったりする
日本企業のクソアプリを作ったあげく、
なぜ会社の業績が傾いてるのかわからない重役共々路頭に迷ってればいいよ。


186
デフォルトの名無しさん (ワッチョイ 27c9-WFrU)[]   投稿日:2016/11/13 00:18:33  ID:CUrdK5Xi0.n
>182
まぁそうだが、ただswiftって言語としてまだまだ新しすぎるんだよね。
そりゃバージョン上がればいろいろ変わるさと正直思う。

187
デフォルトの名無しさん (ワッチョイ 0f93-9MLS)[sage]   投稿日:2016/11/13 03:15:10  ID:gdSsF4/Y0.n
>179
そんなあなたに詰めswift
コードで語るスレらしいからお気に召すと思う

188
デフォルトの名無しさん (スププ Sd1f-9MLS)[sage]   投稿日:2016/11/13 16:47:18  ID:d2AUcSb3d.n
>179
>forやifで悩むよりさっさとアプリ書き上げて画面突っかかるところをInstrumentsで解析してピンポイントにチューニングしてろや

>183
>応用アプリケーションのレイヤーで意識するべき事もわかってないくせに「先輩、cスタイルのfor文って実は遅いんですよ!」とか言っちゃって危険人物扱いされる人間が出ないように釘刺したかったんや


この話題ってもともとそう言う話だったと思うよ?

for each は1000倍遅い、とか言う人に対して
for文単体の速度なんて測れないし、気にする意味がない
って、話が出て
その流れでコードを書いて公開する人とか、それを条件変えるだけで簡単に結果がひっくり返るよとか言うのを公開する人が出てきた

少なくとも実測値を出してるような人たちは
1000倍遅いといった人をおちょくるために、、、、
いや、for文の速度を気にするなんて馬鹿らしい事を示すためにあえて書いてるように見えるよ

189
デフォルトの名無しさん (ワッチョイ 238c-q8zF)[sage]   投稿日:2016/11/13 16:58:23  ID:wcHwfNTy0.n
コード、性能についての議論じゃなく兎角煽れればいいって荒らしはいい加減うざいわ
コメント1件

190
デフォルトの名無しさん (ワッチョイ 93f8-9MLS)[sage]   投稿日:2016/11/13 17:13:24  ID:ZZzhDTzs0.n
アプリケーションプログラマーが細かい速さのこととか気にすべきでないと言うのは俺も同意見

でも、アプリケーションプログラマーであっても(あるからこそ)、OSやコンパイラは全力でユーザー(含:プログラマー)を騙しに来るというのは覚えておいて欲しいと思ってる。


「USBメモリへの書き込み速度測って見ました」
「どれどれ?物理最大速度の100倍以上出てるじゃないか!
おかしいと思わない?OSのIOキャッシュ勉強してからやり直そう」

「このデバッグプリント不要だから外しといてね」
「でも、外すとクラッシュするんです」
「よし、集中レビューしよう。そう言うのは放置しちゃダメ」
「えと、無効な変数参照してました」

「動作を見るためにウェイト入れたんですがそれでも速すぎて現象がわかりません」
「、、、ああ、空ループじゃん。コンパイラに無視されるからウェイトにならないよ」


みたいな、冗談のような本当の話

191
デフォルトの名無しさん (ワッチョイ dfec-dJcJ)[sage]   投稿日:2016/11/13 18:13:35  ID:ckhnbYpT0.n
わざわざクソ文法つくるからこういうしょーもない話が出てくんだろ...
ObjCでおk

192
デフォルトの名無しさん (ワッチョイ a766-9MLS)[sage]   投稿日:2016/11/13 18:31:36  ID:0Fxu7QuG0.n
アッハイ

193
デフォルトの名無しさん (ワッチョイ 27c9-9MLS)[sage]   投稿日:2016/11/13 19:41:56  ID:6V/fQ0Vt0.n
オッパイ

194
デフォルトの名無しさん (スププ Sd1f-9MLS)[sage]   投稿日:2016/11/14 12:29:58  ID:RnkpU3Lyd.n
>189
禿同

ま、しばらくは速度ネタで荒らそうとする奴は出んだろう
出たところで笑い飛ばせば済む話
コメント1件

195
デフォルトの名無しさん (ワッチョイ 033c-teht)[sage]   投稿日:2016/11/14 18:24:15  ID:JW47M78W0.n
好みの話だけどfor文はもっと
トレーリングクロージャめいた構文でも良かったと思う
http://swiftlang.ng.bluemix.net/#/repl/5829827ba56869580c9719a5
コメント2件

196
デフォルトの名無しさん (ブーイモ MM6f-yNdZ)[]   投稿日:2016/11/14 20:00:07  ID:9JJaNF23M.n
今猛烈にnil安全pushしてる勢力がいるけど、あいつら多分元々nilの扱いが安全だったObjCみたいな環境がある事知らんよな
Javaにnil安全が導入されるのとObjCにnil安全が導入されるのではまるでインパクトが違う
そこが理解できてないのに長ったらしい文章でnil安全の優位性訴えて空振りしてるのが笑える
コメント2件

197
デフォルトの名無しさん (ワッチョイ 238c-q8zF)[sage]   投稿日:2016/11/14 20:14:57  ID:7uicpZxO0.n
どこのSwift利用層だよ
あれかObjCのMember/Class Propertyのnil非安全化に対してSwiftのPropertyはnil安全だから、昔のObjCの意志を継いだ的な感じか

>195
シンプルだな
便利そうだからMLだかで提案してみてくれよ

198
デフォルトの名無しさん (ワッチョイ 27c9-dJcJ)[sage]   投稿日:2016/11/14 20:34:20  ID:rIoU2mi10.n
ObjC信者がいうnilが安全ってnilにメッセージ送っても無視されるからとかそういうくだらんことじゃないのか?
他になんかnilを上手く扱える仕組みあったっけ

199
デフォルトの名無しさん (ワッチョイ 138f-PwKp)[sage]   投稿日:2016/11/15 04:22:43  ID:HGK9Tpoq0.n(2)
objcはnull安全じゃないだろ。
存在しないメッセージ式にnullを返してるだけ。
それって問題の先送りでしかないから、
javaのヌルポより悪だと思う。
コメント1件

200
デフォルトの名無しさん (ワッチョイ 138f-PwKp)[sage]   投稿日:2016/11/15 04:29:11  ID:HGK9Tpoq0.n(2)
null安全のメリットは文字通り
値が入ってることが保証されてることだと思う。
コンパイラがnullが入ってる可能性を指摘してくれるのはマジで便利。
jsもtypescriptでできるから手放せないな。
信者といえばそうだけど、
使わないことのメリットがあるなら教えて欲しい。ないでしょ?

201
デフォルトの名無しさん (ワッチョイ 0f93-9MLS)[sage]   投稿日:2016/11/15 07:35:58  ID:yuOO+PuR0.n(2)
>196
じゃ、お前さんはObjCの上で
cのヌルポインタとか無効なポインタを踏んでろ

202
デフォルトの名無しさん (ワッチョイ 3b53-yNdZ)[]   投稿日:2016/11/15 09:06:06  ID:NUkfEkc00.n
nullpoをnil安全導入の根拠とされると
ふぇぇとなる世界の住人がいる事もわかってないと
ただunwrap codeが増えて面倒だと思ってる層を説得できないだろうな

203
デフォルトの名無しさん (ワッチョイ 27c9-dJcJ)[sage]   投稿日:2016/11/15 10:38:09  ID:U3Mmtdzs0.n
その「ふぇぇ」の中身を具体的に教えてほしい

204
デフォルトの名無しさん (ササクッテロリ Sp2f-wOPQ)[sage]   投稿日:2016/11/15 10:43:21  ID:aNrG6800p.n
ふぇぇとかじゃないの?

>194を筆頭に煽りたいだけの荒しだから、nil論争は無意味
なんの技術根拠もなく煽ってるだけだろ

205
デフォルトの名無しさん (スププ Sd1f-9MLS)[sage]   投稿日:2016/11/15 12:32:15  ID:HncvCIt2d.n(2)
>196
また聞きかじり煽りか

そんな他言語に対する優位性なんて視点でnil安全を語ってる所なんて見た事ないぞ、
どこの話だ?

チュートリアル系のサイトで
オプショナル型の取り扱いがめんどくさいといってるswift初心者に
これはコンパイラの優しさだから頑張って使いこなそうね
的な話なら時々見るけど
コメント1件

206
デフォルトの名無しさん (スププ Sd1f-9MLS)[sage]   投稿日:2016/11/15 12:33:08  ID:HncvCIt2d.n(2)

207
デフォルトの名無しさん (スッップ Sd1f-PwKp)[]   投稿日:2016/11/15 16:56:54  ID:JG3cBSAhd.n
>206
ぬるぽ

208
デフォルトの名無しさん (ワッチョイ 238c-F9Kl)[sage]   投稿日:2016/11/15 19:22:16  ID:eNNQwyG50.n
>205
どこのサイト?聞きかじりの根拠ない煽りか?
コメント1件

209
デフォルトの名無しさん (ワッチョイ 0f93-amCg)[sage]   投稿日:2016/11/15 19:51:29  ID:yuOO+PuR0.n(2)
>208
もちろん聞きかじりだよ。
例えばこんな所の
http://stackoverflow.com/questions/24034483/what-is-an-unwrapped-value...

210
デフォルトの名無しさん (ワッチョイ 238c-F9Kl)[sage]   投稿日:2016/11/16 08:08:29  ID:f3JQk4xB0.n
最近はstackoverflowをチュートリアルに使う子がいるのか...
QAサイトをチュートリアルに使うのはきっついなぁ、まだQiitaの方がマシだろうに
コメント1件

211
デフォルトの名無しさん (スププ Sd1f-9MLS)[sage]   投稿日:2016/11/16 08:39:46  ID:KIDCbNFDd.n
まあどこのサイトも玉石混淆だけど、
swiftのチュートリアルに関しては
StackOverflowが当たり率が高い気がする

212
デフォルトの名無しさん (ワッチョイ 62ec-Th+s)[sage]   投稿日:2016/11/17 08:12:31  ID:ZZmJDmDd0.n
>210
Qiitaはステマ臭がハンパないから読む気しない

213
デフォルトの名無しさん (スププ Sdb8-N7ik)[sage]   投稿日:2016/11/17 08:52:06  ID:UnJh5aZNd.n(2)
>195
rubyみたいでかわいいね

ところでIBM SwiftSandboxに書いたコードを
引用する方法を教えてもらえたら嬉しい

214
デフォルトの名無しさん (ワッチョイ c13c-XpIe)[sage]   投稿日:2016/11/17 08:58:37  ID:GXbz24lT0.n
下の save code → save したらURLが出てくる
nameとかは空欄でもいい
コメント1件

215
デフォルトの名無しさん (スププ Sdb8-N7ik)[sage]   投稿日:2016/11/17 11:14:32  ID:UnJh5aZNd.n(2)
>214
さんきゅ

216
デフォルトの名無しさん (ササクッテロラ Spa9-RUi6)[sage]   投稿日:2016/11/19 11:39:54  ID:K0z8adqwp.n
StackOverFlowがチュートリアルとか意識たけーな

swift.orgのブログを暇潰しに読んでみたら
Whole-Module Optimizationとか今実装進めてるのか
まだまだ最適化の余地は残ってそう
コメント1件

217
デフォルトの名無しさん (スププ Sdb8-1ibN)[sage]   投稿日:2016/11/19 19:51:18  ID:kCSsFgN3d.n
>216
それは意識が高いとか低いとかの問題じゃなくて
日本語の情報量が圧倒的に少ないから自然に英語サイトにたどり着くだけでは?

218
デフォルトの名無しさん (ワッチョイ 6353-mj3c)[]   投稿日:2016/11/19 21:02:27  ID:kBqtqEES0.n(3)
Swiftの良さを語る時にNull安全を持ち出すのやめてほしい
ObjC移行組にとってはNull安全のメリデメはトントンくらいにならない
そこじゃなくて、そのnull安全を実現しているenumやノマドとかが素晴らしく有用なのであって
null安全をアピールしてる人間はObjCerから見ると補助輪付き自転車を渡してきてこれ安全だから絶対に乗れよと言ってくる頭おかしいおじさんにしか見えない
Swift移行がこじれるだけだから黙っといて欲しい
コメント4件

219
デフォルトの名無しさん (ワッチョイ 6353-mj3c)[]   投稿日:2016/11/19 21:24:55  ID:kBqtqEES0.n(3)
間に一文追加

ObjCerから見ると
>苦労して自転車が乗れるようになった人間に対して
補助輪付き自転車を渡してきて〜

Null安全の有用さを否定してるわけじゃないんだがObjCでiOS開発に慣れた人間が困るポイントでもないんだよそこは。実際お前らNull安全なくて詰んだことあるか?
もっと美味しいところがあるのになぜNull安全を推す?理解に苦しむ
コメント2件

220
デフォルトの名無しさん (ワッチョイ 5138-svKO)[sage]   投稿日:2016/11/19 21:38:25  ID:eI+Z2SFt0.n
https://developer.apple.com/swift/resources/
The Swift Programming Language (Swift 3)
=> チュートリアルとして分かる

Qiitaの有象無象の記事
=> 特定の項目に対してはいろはから説明してるものもあるのでまだ分かる

stackoverflowのQA
=> 特定の問題の原因/解法を調べるには良いが、チュートリアルには使えない

取り敢えず、stackoverflowを挙げとけばいいってのはヤツは意識高い系
最近のSwiftは知らんけど、betaの頃はstackoverflowよりqiitaの方が良かったな
Apple信者と意識高い系がアホほどSwift記事挙げてたからスッゲー充実してた

>218
ageるのやめて、nil safeとNull安全の用語ミス直して出直せw
ちょいちょいワッチョイ変えたりして煽ってるけどズレてて笑いを誘う

221
デフォルトの名無しさん (ワッチョイ 6353-mj3c)[]   投稿日:2016/11/19 21:48:50  ID:kBqtqEES0.n(3)
型推論で遅え遅え言ってるやつも設計をなんか間違ってるだけだから黙っとけと思う
Swiftの3大移行が進まない理由は「バカが型推論が遅いと吹聴する」「謎のNull安全推し」「破壊的変更というパワーワードにビビって触らない」だな
コメント2件

222
デフォルトの名無しさん (ワッチョイ f693-1ibN)[sage]   投稿日:2016/11/20 00:23:49  ID:kc7cu4Co0.n(2)
>219
それ、昔は大変だったのに今時の若いもんは、、、的にしか聞こえない

マニュアル車の免許取るのは大変だったのに、
オートマ車なんてもんが出てきやがって

友達と外で会う約束をするときには場所と時間をきっちり決めて
さらに待ち合わせに失敗した場合のために第二次集合ポイントまで決めていたもんなのに
携帯電話なんてもんが出てきたせいで、待ち合わせの仕方が変わってしまって迷惑じゃ無いか

223
デフォルトの名無しさん (ワッチョイ f693-1ibN)[sage]   投稿日:2016/11/20 00:42:06  ID:kc7cu4Co0.n(2)
>221
すまんがswift3移行は進んでいないのか?
ウチは全プロジェクト移行済みだから実感がない

随分前からXCodeが警告出してくれてるようになってたから全然問題なかった
と、言いたいところだが、実際は自動移行がへぼくて苦労したところもあった
でも、パターンがわかればあとは機械的に置き換えるだけで済んだから無問題

ま、他所が移行してなくてもウチには関係ないか


困るのは初心者向けの手頃な教科書が無いところ
コメント1件

224
デフォルトの名無しさん (ワッチョイ 4066-N7ik)[sage]   投稿日:2016/11/20 04:07:43  ID:FtYcGfnw0.n
>223
>ウチは全プロジェクト移行済みだから実感がない
ご愁傷様です(-人-)
コメント1件

225
デフォルトの名無しさん (ワッチョイ 9cba-RUi6)[sage]   投稿日:2016/11/20 10:38:12  ID:2y7SIl1/0.n
>224
うぷぷぷぷ

226
デフォルトの名無しさん (ササクッテロラ Spa9-RUi6)[sage]   投稿日:2016/11/20 11:01:10  ID:GIAqLfHRp.n(2)
すまん、Swift3移行してない雑魚おる?

podなんかで外のライブラリが移行してないと面倒だけどなぁ
ObjCライブラリを選定して使ってれば関係ないか

227
デフォルトの名無しさん (ワッチョイ e0c9-Th+s)[晒しage]   投稿日:2016/11/20 11:36:07  ID:hZLIxGFv0.n
>218
>ノマド

228
デフォルトの名無しさん (スププ Sdb8-1ibN)[sage]   投稿日:2016/11/20 19:17:35  ID:cjIN9+jzd.n
ノマドってなあに?

229
デフォルトの名無しさん (ササクッテロラ Spa9-RUi6)[sage]   投稿日:2016/11/20 19:21:10  ID:GIAqLfHRp.n(2)
毛の壁に聞け

230
デフォルトの名無しさん (ワッチョイ bdc9-/WwX)[sage]   投稿日:2016/11/20 20:31:18  ID:HG1JDYXN0.n
ノマドワーカー
死語

231
デフォルトの名無しさん (ワッチョイ c13c-XpIe)[sage]   投稿日:2016/11/20 23:01:46  ID:j5d8SBLe0.n
まぁnとmはキーが近いしな

232
デフォルトの名無しさん (ワッチョイ 56e5-1ibN)[sage]   投稿日:2016/11/21 00:10:47  ID:0fuIyKtv0.n
詳解Swiftの第三版でるってな

233
デフォルトの名無しさん (ワッチョイ e0c9-hkLf)[]   投稿日:2016/11/21 01:01:50  ID:OT/+RMzH0.n
サーバサイドはibm頑張ってんのかね?

234
デフォルトの名無しさん (ワッチョイ 62ec-Th+s)[sage]   投稿日:2016/11/21 08:16:30  ID:t97dgSt20.n
>218
>219
>221
Swiftマンセー!!!!
お前ら世界一すばらしい言語Swift使わないとかねえから

235
デフォルトの名無しさん (スププ Sdb8-1ibN)[sage]   投稿日:2016/11/21 09:15:18  ID:dBt3Nlsvd.n(2)
便乗質問
モナドって何ですか?

Swift始めて1年の初心者ですが、教科書や公式ドキュメントで一度もモナドという言葉を見かけなかったもので
このスレで時々出てくるんですがさっぱり分かりません

ググってもSwiftと関係なさそうな難しい話ばかり
コメント1件

236
デフォルトの名無しさん (ササクッテロラ Spa9-svKO)[sage]   投稿日:2016/11/21 12:23:22  ID:0HSHfyI4p.n
ここ一年でモナド(?)がこのスレに出たのは>218だけなんだよなぁ
時々ってどこで見たのやらw

237
デフォルトの名無しさん (JP 0H85-/WwX)[]   投稿日:2016/11/21 12:49:54  ID:goLgdzFNH.n
関係ないか?
http://d.hatena.ne.jp/m-hiyama/20060419/1145432492
https://ubiteku.oinker.me/2016/01/20/関数型つまみ食い-モナドが難しいと思われている/
http://qiita.com/mandel59/items/8f9111143aea94e7b363
https://ja.wikipedia.org/wiki/モナド_(プログラミング)
コメント1件

238
デフォルトの名無しさん (ワッチョイ c13c-XpIe)[sage]   投稿日:2016/11/21 13:04:46  ID:u6SvyuER0.n(3)
モナドはモナカみたいなものです

239
デフォルトの名無しさん (ワッチョイ c13c-XpIe)[sage]   投稿日:2016/11/21 13:53:49  ID:u6SvyuER0.n(3)
前々スレには一応あるな
Swift part7

>235
これとか読んでみては
http://qiita.com/koher/items/c6f446bad54442a28bf4
コメント1件

240
デフォルトの名無しさん (スププ Sdb8-1ibN)[sage]   投稿日:2016/11/21 19:20:39  ID:dBt3Nlsvd.n(2)
>237
>239
さんきゅ、でもやっぱり難しいです
読みながら居眠りしちゃった、まじ

イメージとしてはmapとかreduceとかコレクション全体に対する操作がモナド?

それとも普通にSwift使ってる分には気にする必要ない?


ちなみに新参者なので過去スレ読んでます
どこにモナドが出てきたかまでは覚えてない
コメント1件

241
デフォルトの名無しさん (ワッチョイ c13c-XpIe)[sage]   投稿日:2016/11/21 20:00:00  ID:u6SvyuER0.n(3)
>240
とりあえずflatMapが分かっていればいいんじゃない
入れ物がモナド、目的は分離/隔離

モナド則は使う側であればあまり気にしなくていい
圏論はガチ勢の領域
コメント1件

242
デフォルトの名無しさん (ワッチョイ 4066-N7ik)[sage]   投稿日:2016/11/22 02:21:40  ID:Hr9qjU/90.n
モナド化できるできないって言語仕様の"外"の話な気がするんだけど
昔からある種の理論原理主義者たちは「そういうことができる」じゃなくて
「そういうことしか許さない」プログラミング言語ができたら最強だよね!をやっては
パラダイムシフトごとに小爆発を繰り返しながら沈んでいってる気がする。

243
デフォルトの名無しさん (スププ Sdb8-1ibN)[sage]   投稿日:2016/11/22 06:16:26  ID:hXJLaKmWd.n(2)
>241
ありがと
詳しく知ったからといって、swiftプログラミングが楽になるようなものでもなさそうなので
気にしない事にします

少し前に出てたnil安全とか言うのも、教科書に出てこなかった言葉なんですが
何となくオプショナルバインディングの事かなと思って、ふーんとか思ってます

244
デフォルトの名無しさん (ワッチョイ c13c-XpIe)[sage]   投稿日:2016/11/22 19:01:43  ID:wbWt9J7e0.n
強いて言えばオプショナルじゃない方の話
nilを入れられない参照型を作れること
コメント1件

245
デフォルトの名無しさん (スププ Sdb8-1ibN)[sage]   投稿日:2016/11/22 21:58:58  ID:hXJLaKmWd.n(2)
>244
わかった!ウチにはわからんという事が

もう少しスキルアップするまでは気にしない事にします

246
デフォルトの名無しさん (ワッチョイ cf93-fk+P)[sage]   投稿日:2016/11/27 23:09:56  ID:2n34pXhS0.n
詳解Swift3
コメント1件

247
デフォルトの名無しさん (ワッチョイ ffec-MM3T)[sage]   投稿日:2016/11/30 23:56:22  ID:48Nf+yqm0.n
>246
>詳解Swift3
http://www.amazon.co.jp/dp/4797390530/
Now Printig wwwwwwwwwwwwwww
コメント1件

248
デフォルトの名無しさん (ワッチョイ 50c9-E9Xg)[]   投稿日:2016/12/02 00:29:52  ID:6eHu8gFg0.n
早くLinuxで普通にサーバサイドで使えるようにならないかな

249
デフォルトの名無しさん (ササクッテロロ Sp8d-25R2)[]   投稿日:2016/12/02 17:41:07  ID:KSpIywEmp.n
>247
第2版のキンドル版を買った人には無償で配るべきだろ。
コメント1件

250
デフォルトの名無しさん (ワッチョイ 6b1a-/mAi)[sage]   投稿日:2016/12/02 19:57:46  ID:glZ3suWJ0.n
こんなクソ言語がサーバーサイドで使われるわけねえだろw
コメント1件

251
デフォルトの名無しさん (ワッチョイ 50c9-E9Xg)[]   投稿日:2016/12/03 01:32:23  ID:xePRMTW90.n
>250
ibmに言ってやれ

252
デフォルトの名無しさん (ワッチョイ 4101-yaSi)[sage]   投稿日:2016/12/03 17:40:32  ID:LP4g2t+V0.n
こういうくさいまとめ記事でSwiftが熱いと勘違いしちゃうやつがいるのかな

http://bipblog.com/archives/5311083.html

253
デフォルトの名無しさん (ワッチョイ 50c9-Cf2b)[sage]   投稿日:2016/12/03 18:00:15  ID:jLjlCp4b0.n
そんな記事で思い立って勉強始めてそのまま実際に出来るようになるやつなんておらんからどうでもええやろ
勉強を始めるきっかけに至る遠因のうちの一つ、ぐらいにはなるかもしらんが

254
デフォルトの名無しさん (スフッ Sda8-wK09)[sage]   投稿日:2016/12/07 12:08:20  ID:nQKCcTcRd.n
>249
紙版買った人にも安価なアップグレードパスが欲しい

255
デフォルトの名無しさん (アウアウウー Sa19-M/0O)[sage]   投稿日:2016/12/07 15:43:37  ID:+GcuVx5ha.n(2)
プロトコル内のメソッドにオプショナルつけるとエラーなるんやがどうすれば良い?
コメント1件

256
デフォルトの名無しさん (ワッチョイ 753c-Cf2b)[sage]   投稿日:2016/12/07 16:42:09  ID:3hVk66ux0.n
>255
プログラマならコードで語れよ

257
デフォルトの名無しさん (アウアウウー Sa19-M/0O)[sage]   投稿日:2016/12/07 17:05:47  ID:+GcuVx5ha.n(2)
自己解決しました
@Objcがいるんやな
コメント1件

258
デフォルトの名無しさん (ワッチョイ 3e93-wK09)[sage]   投稿日:2016/12/07 21:49:12  ID:kEgAfPTA0.n
>257
う〜ん?
コード見てないからわかんないけどなんか違う気がする

259
デフォルトの名無しさん (ササクッテロリ Sp8d-v8zE)[sage]   投稿日:2016/12/07 22:18:03  ID:04THRhb6p.n
まだその制約あったんだな
1.0とかの頃にノウハウとして使ってたわ
しかしまぁ今からやるならバッドノウハウよな

260
デフォルトの名無しさん (アウアウウー Sa19-YOWX)[]   投稿日:2016/12/07 23:22:18  ID:frww6tdla.n
protocol testProtocol {
func method1()
optional func method2() ←エラー 'optional' can only be applied to members of an @objc protocol
}




@objc protocol testProtocol {
func method1()
@objc optional func method2()
}
これでうまく動いたんだけどやり方まずいですか?
コメント2件

261
デフォルトの名無しさん (ワッチョイ 9b3c-drn7)[sage]   投稿日:2016/12/08 07:39:50  ID:Xgf0Zqhi0.n

262
デフォルトの名無しさん (スフッ Sd2f-YmwQ)[sage]   投稿日:2016/12/08 10:12:52  ID:Y2Zm3Xi7d.n
>260
使う側のコードが分からないからなんとも言えないけど

基本的に@Objc装飾子はObjective-Cプログラムに引き渡すコード・データに付けるものだから
仮に単純にswiftのプログラムであるとするなら@Objcが出てくる事に違和感がある

必要な時は必要なんだけどさ
コメント1件

263
デフォルトの名無しさん (アウアウウー Sa47-IVaD)[sage]   投稿日:2016/12/08 10:37:41  ID:gKAxGgXua.n(2)
>262
装飾しつけないやり方ってどうやるんですか?
コメント1件

264
デフォルトの名無しさん (ワッチョイ 9b3c-Ts63)[sage]   投稿日:2016/12/08 10:51:52  ID:6PCHYR3j0.n
>263
>261見ろよ…

265
デフォルトの名無しさん (アウアウウー Sa47-IVaD)[sage]   投稿日:2016/12/08 11:11:12  ID:gKAxGgXua.n(2)
ありがとうございました!

266
デフォルトの名無しさん (オイコラミネオ MM4f-YmwQ)[sage]   投稿日:2016/12/08 11:27:40  ID:hXTPpY/nM.n(2)
NS接頭語が残ってるクラスって理由あるの?
今後全て消える?

267
デフォルトの名無しさん (オイコラミネオ MM4f-YmwQ)[sage]   投稿日:2016/12/08 12:05:08  ID:hXTPpY/nM.n(2)
SE 0086読んだら解決しました^_^

268
デフォルトの名無しさん (ササクッテロリ Sp27-JVDy)[sage]   投稿日:2016/12/08 16:08:42  ID:bAdCGSgKp.n
>261
「手法」じゃなく冒頭の「意見」の部分読んだら
> Swift code should take another approach
って言ってるぞw

269
デフォルトの名無しさん (ワッチョイ 1b1d-YmwQ)[sage]   投稿日:2016/12/10 16:30:41  ID:3iED4EzH0.n
https://developer.apple.com/reference/coredata/nsfetchedresultscontroller

まだ、Swiftの記述になってないね( ´Д`)y━・~~

270
デフォルトの名無しさん (ワッチョイ 8b23-WerT)[sage]   投稿日:2016/12/10 16:35:07  ID:oFE2vaPJ0.n
そのまま消えてくれても全然困らないけど

271
デフォルトの名無しさん (JP 0H47-XlRU)[]   投稿日:2016/12/10 16:48:21  ID:qQjpy7DvH.n
名前長すぎ

272
デフォルトの名無しさん (ササクッテロラ Sp27-JVDy)[sage]   投稿日:2016/12/10 17:16:53  ID:zoVCCI8Qp.n
SDKs
iOS 3.0+
macOS 10.12+
tvOS 3.0+
watchOS 2.0+

なぜiOS3の化石を移植したし
別名の同程度機能を持ったクラス作れば良かったのにな

273
デフォルトの名無しさん (スッップ Sd2f-WerT)[sage]   投稿日:2016/12/10 17:19:24  ID:8DqJYhuzd.n
いつでもSwift辞められるようにだよ

274
デフォルトの名無しさん (ワッチョイ 37c9-Ts63)[sage]   投稿日:2016/12/10 20:02:36  ID:djg+OUUZ0.n
CoreDataとかいう糞の固まりさっさと捨ててほしい

275
デフォルトの名無しさん (ワッチョイ cb17-YmwQ)[sage]   投稿日:2016/12/10 21:08:11  ID:jnTTSzju0.n
NextStepからは逃れられないのだはは

276
デフォルトの名無しさん (ワッチョイ 8b8f-6LJV)[sage]   投稿日:2016/12/11 06:35:20  ID:BAivgHXg0.n
coredataな代わりに何を使うのさ

277
デフォルトの名無しさん (ワッチョイ d33c-q+wp)[sage]   投稿日:2016/12/11 06:44:58  ID:CPi1f3h00.n
Realmとか?

278
デフォルトの名無しさん (アウアウエー Sa7f-ZMVm)[sage]   投稿日:2016/12/12 14:22:12  ID:AazRvE9ra.n

279
デフォルトの名無しさん (ササクッテロリ Sp27-JVDy)[sage]   投稿日:2016/12/12 20:55:22  ID:Xm48GD4Op.n
Sever APIs Project
https://swift.org/server-apis/

280
デフォルトの名無しさん (ワッチョイ 8b23-WerT)[sage]   投稿日:2016/12/13 07:44:48  ID:aGvNEn/F0.n
>278
仕様変わりすぎでどうせ廃れるのにいつまで更新するの?

281
デフォルトの名無しさん (スフッ Sd2f-YmwQ)[sage]   投稿日:2016/12/13 08:28:32  ID:CT9GP8dCd.n
変わり続けることが力の根源なのさ
by すとらうすとらっぷ

282
デフォルトの名無しさん (スッップ Sd2f-WerT)[sage]   投稿日:2016/12/13 09:26:53  ID:73HQpuIOd.n
はやくも詳解Swiftの内容と整合とれなくなりそうだな

283
デフォルトの名無しさん (ワッチョイ 37c9-Ts63)[sage]   投稿日:2016/12/13 11:56:20  ID:KXUQsQXn0.n
It is a strong goal that the vast majority of sources that built with the Swift 3.0 compiler continue to build with the Swift 3.1 compiler.

284
デフォルトの名無しさん (エムゾネ FF2f-XlRU)[sage]   投稿日:2016/12/13 12:17:59  ID:hu4l98UtF.n
相模ゴム

285
デフォルトの名無しさん (ワントンキン MMef-YmwQ)[sage]   投稿日:2016/12/14 22:24:17  ID:HfWj6KVmM.n
全ての絵文字を配列に入れたいのですが、どのような方法があるのでしょうか。また、mac本体にfinderなどで取り出せるemojiのファイルなどあるのでしょうか?
コメント1件

286
デフォルトの名無しさん (ワッチョイ 4fe5-Bhnc)[sage]   投稿日:2016/12/14 23:22:54  ID:yky6KY2t0.n
わからんが、unicodeで保存するんじゃね
http://unicode.org/emoji/charts-beta/full-emoji-list.html

287
デフォルトの名無しさん (ササクッテロラ Sp29-nol0)[sage]   投稿日:2016/12/15 08:29:23  ID:CehXfGlIp.n
普通にStringでいいんじゃねーの
今時、サポートしてるだろ

288
デフォルトの名無しさん (オイコラミネオ MM34-jFiT)[sage]   投稿日:2016/12/15 12:47:12  ID:K7xig0SVM.n
質問はどこにしまうかじゃねえだろ

289
デフォルトの名無しさん (ワッチョイ 413c-i+Qt)[sage]   投稿日:2016/12/15 20:39:21  ID:aXGD97Aa0.n
>285
https://www.codecaptain.io/blog/ios-development/get-all-available-emoji-...

objcだけど、これでなんとかなったりしない?
うまくいったら教えてよ

290
デフォルトの名無しさん (ブーイモ MMb8-Nqhn)[sage]   投稿日:2016/12/15 22:22:11  ID:lLtgDovqM.n
絵文字先頭のcharcodeを配列の先頭に入れて++してくだけじゃないのか
コメント2件

291
デフォルトの名無しさん (ワッチョイ 413c-i+Qt)[sage]   投稿日:2016/12/16 00:22:16  ID:mSiPAeok0.n
>290
それだとOS毎に使える範囲調べて調整しないといけないから、結果的にめんどくさいじゃん
と他人事ながら思うんだけど
コメント1件

292
デフォルトの名無しさん (ブーイモ MMb8-Nqhn)[sage]   投稿日:2016/12/16 12:54:32  ID:I9PtonJVM.n(2)
>291
絵文字を扱える統一コードはunicodeしかないのだからosに依存せず一意でしょ。
コメント1件

293
デフォルトの名無しさん (ワッチョイ 413c-i+Qt)[sage]   投稿日:2016/12/16 13:40:25  ID:+Tc7Ug9p0.n(2)
>292
そういうことじゃない
バージョン毎に使える絵文字(や肌の色など)が増えてるのさ
コメント1件

294
デフォルトの名無しさん (ブーイモ MMb8-Nqhn)[sage]   投稿日:2016/12/16 13:59:22  ID:I9PtonJVM.n(2)
>293
それフォント依存。
コメント1件

295
デフォルトの名無しさん (アウアウウー Sa05-9Iap)[sage]   投稿日:2016/12/16 14:34:23  ID:MTMicKBAa.n(2)
実機に無線インストールって出来なかったっけ?

296
デフォルトの名無しさん (ササクッテロラ Sp29-nol0)[sage]   投稿日:2016/12/16 14:40:32  ID:vMl/sGICp.n
なんでunicode限定で考える
swiftはマルチOS、任意文字コードで動かされる可能性のある言語だろ?(白目
コメント2件

297
デフォルトの名無しさん (スプッッ Sdc8-I7lW)[sage]   投稿日:2016/12/16 15:15:48  ID:bXGI3+Qzd.n

298
デフォルトの名無しさん (ワッチョイ 413c-i+Qt)[sage]   投稿日:2016/12/16 15:50:44  ID:+Tc7Ug9p0.n(2)
>294
iOSの場合、実質バージョン依存とどう違うん?移植なんてする奴なんてごく一部じゃねーか
コメント1件

299
デフォルトの名無しさん (オイコラミネオ MM34-jFiT)[sage]   投稿日:2016/12/16 16:04:57  ID:bO3N4lsnM.n
>297
おいおい

300
デフォルトの名無しさん (アウアウウー Sa05-9Iap)[sage]   投稿日:2016/12/16 22:24:42  ID:MTMicKBAa.n(2)
アクションシートの表示がシミュレータだと動きますが実機だとアボートします。原因がわかりません

301
デフォルトの名無しさん (ワッチョイ 413c-0G5/)[sage]   投稿日:2016/12/16 23:41:13  ID:G52QpNky0.n
まず服を脱ぎます
次にログを見ます
コメント1件

302
デフォルトの名無しさん (アウアウウー Sa05-9Iap)[sage]   投稿日:2016/12/17 06:22:29  ID:4fBoIIO7a.n
>301
ログがわかりません!
コメント1件

303
デフォルトの名無しさん (ササクッテロリ Sp29-nol0)[sage]   投稿日:2016/12/17 10:44:05  ID:TkPf6t45p.n(2)
ビックリするほどユートピアはいつ言えば良いですか><

ここに迷い混んだiOS関連質問者は初心者スレ行け、>1からも飛べる
swiftに関係ない質問すると遊ばれちゃうよ

304
デフォルトの名無しさん (ブーイモ MM8d-Nqhn)[sage]   投稿日:2016/12/17 15:55:42  ID:vQpe99jEM.n
>298
勝手に条件絞られたら知るかとしか答えられないよ。
>296
標準規格で絵文字を扱えるのはunicodeしかないからだよ。

305
デフォルトの名無しさん (ササクッテロリ Sp29-fQwo)[sage]   投稿日:2016/12/17 18:28:20  ID:TkPf6t45p.n(2)
標準規格で勝手に条件で絞られても...知らんなw

>290ってそんなに簡単じゃねーだろ、と思いつつ考えないようにしてたけど++すんのやっぱりメンドイ
UInt8からUnicodeScalar作って、そこからCharacter作って、一般用途には更にStringにすんのかな
http://swiftlang.ng.bluemix.net/#/repl/58550325b5619f13e0a93d13

Swiftは相変わらずオブジェクトの多段生成が鬱陶しいのう
extensionで省略できるから勝手にしろってスタンスなのかもだけど、Framework APIの在り様が好きになれない

306
デフォルトの名無しさん (ワッチョイ 413c-0G5/)[sage]   投稿日:2016/12/18 00:11:09  ID:UYhf7FJp0.n
https://swiftlang.ng.bluemix.net/#/repl/585555027abf1b13a51af55e
コメント1件

307
デフォルトの名無しさん (ワッチョイ 56e5-jFiT)[sage]   投稿日:2016/12/18 10:19:10  ID:9XJnJRxF0.n
すげぇぇええ

308
デフォルトの名無しさん (スフッ Sdb8-f0Z7)[sage]   投稿日:2016/12/20 19:27:56  ID:vNqc8Ywld.n
>306
国旗も入れてください
コメント1件

309
デフォルトの名無しさん (シャチーク 0C54-uX3G)[sage]   投稿日:2016/12/21 11:36:55  ID:GYB+hQbmC.n
Unicode 9.0.0 の絵文字の一覧があるけど、見方がわからん

http://www.unicode.org/versions/components-9.0.0.html
http://www.unicode.org/Public/9.0.0/ucd/EmojiSources.txt

310
デフォルトの名無しさん (ワッチョイ 413c-0G5/)[sage]   投稿日:2016/12/21 11:59:56  ID:xZVHhTrr0.n(2)
>308
国旗だけ
https://swiftlang.ng.bluemix.net/#/repl/5859eea46d21191312f171cc

国コード一覧
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
コメント2件

311
デフォルトの名無しさん (スフッ Sdb8-X9Fs)[sage]   投稿日:2016/12/21 18:40:04  ID:TE+vjmu6d.n
>310
これはすごい
2文字国コードを全パターン生成してユニコード化するとは

ucs4が21ビットに制限された時は絶望したが
UTF32割と上手く作られてるなぁ
コメント1件

312
デフォルトの名無しさん (ワッチョイ e03c-i+Qt)[sage]   投稿日:2016/12/21 18:44:49  ID:jZ5HwhFO0.n(2)
>310
Risってどういう意味?
コメント1件

313
デフォルトの名無しさん (ワッチョイ 413c-0G5/)[sage]   投稿日:2016/12/21 21:29:06  ID:xZVHhTrr0.n(2)
>312
Regional Indicator Symbol (U+1F1E6から始まる地域コード用のアルファベット)の頭字語
コメント1件

314
デフォルトの名無しさん (ワッチョイ 7910-Azor)[sage]   投稿日:2016/12/21 21:55:35  ID:pOOrMtXX0.n
>311
UTF32じゃなくてUnicodeの合字システムが上手く作られてる、じゃないの?
RIS2文字が合字として国旗1文字(?)として表示されるようになってるはずだけど

315
デフォルトの名無しさん (アウアウウー Sa05-9Iap)[sage]   投稿日:2016/12/21 21:56:20  ID:5lzFM20Ca.n
中級者向け技術書教えてください

316
デフォルトの名無しさん (ワッチョイ e03c-i+Qt)[sage]   投稿日:2016/12/21 22:57:01  ID:jZ5HwhFO0.n(2)

317
デフォルトの名無しさん (ワッチョイ 413c-AUQK)[]   投稿日:2016/12/21 23:02:50  ID:6utLXA1y0.n
ViewとViewControllerは違うと、何度言えば解るんだ?

318
デフォルトの名無しさん (ワッチョイ bfb5-g5tI)[sage]   投稿日:2016/12/21 23:38:24  ID:TqJ5vR9v0.n
すげーどうでもいい所だけど、関数の命名規則がおもろいな
swift.orgのガイドラインをガン無視で笑う

319
デフォルトの名無しさん (ワッチョイ e0c9-6+SE)[sage]   投稿日:2016/12/21 23:49:08  ID:RCM7Zvqs0.n
国旗絵文字はぜんぜん上手くないぞ
ちょっと前に文字コードスレで話題になってたけど

[SE]スウェーデン国旗
[ES]スペイン国旗
[SE][SE]でスウェーデン国旗*2のつもりが
スウェーデン国旗が絵文字フォントに入ってなかったら
[S][ES][S]でスペイン国旗に実際に化けたりする

同じUnicodeのサロゲートペアは、上位と下位でコードブロック分けられてるから必ず[上位][下位]の組み合わせでペアの区切りを判別できるようになってたのに、
後発のRegional Indicator Symbolはそれをしなかった
責任者出てこいって感じ
コメント1件

320
デフォルトの名無しさん (ワントンキン MM3f-q7cB)[sage]   投稿日:2016/12/22 09:57:05  ID:i/pZa1E8M.n


321
デフォルトの名無しさん (ワッチョイ bf32-hWIT)[sage]   投稿日:2016/12/22 10:50:51  ID:qTtm125Z0.n
>319
それは駄目だろ……1ビット上位下位を区別する情報入れられれば……

322
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/22 12:17:57  ID:/ytrOsGa0.n
合成文字自体がもうな。
何考えて入れたんだこんなの
コメント1件

323
デフォルトの名無しさん (ワッチョイ 1f93-W3gD)[sage]   投稿日:2016/12/23 11:40:23  ID:dCUGoqXg0.n
UCS/ユニコードが固定幅文字コードを諦めた事を考えれば
Swiftのstringは良く出来てるよな

背景を知らないとクソ使いにくいだけなんだが
コメント1件

324
デフォルトの名無しさん (ササクッテロリ Spcf-4tq9)[sage]   投稿日:2016/12/23 16:01:01  ID:mdacHMN9p.n
イマドキ、文字を固定長で扱う新興言語なんてあるの?
2010年代で使われ始めた言語は総じてそんなものだろ
コメント1件

325
デフォルトの名無しさん (ワッチョイ 1f93-W3gD)[sage]   投稿日:2016/12/24 04:53:12  ID:Kb337a0Z0.n
>324
とりあえずおまいが文字列で困った経験が無いことは分かった

浅学ながら2010年以降にリリースされた言語をSwift以外に知らないが

326
デフォルトの名無しさん (ワッチョイ bf42-GMQd)[sage]   投稿日:2016/12/24 09:31:27  ID:qYWxKasf0.n
>323
もともとそのつもりだったのに諦めたのはutf-16だけだろ。

327
デフォルトの名無しさん (ワッチョイ 572b-1x4y)[sage]   投稿日:2016/12/24 11:13:10  ID:8cn52jEt0.n
文字コードは7bit, 8bit, 16bitと固定長を続けてきて、ようやく固定長を諦めた印象
プログラミング言語の文字(列)は早々に固定長諦めて可変長に
コメント1件

328
デフォルトの名無しさん (ワッチョイ e342-i2qZ)[]   投稿日:2016/12/25 13:01:46  ID:LALK6bkG0.n
>322
26文字しか把握できないヤンキーの発想だから

329
デフォルトの名無しさん (スフッ Sd9f-W3gD)[sage]   投稿日:2016/12/25 16:22:48  ID:dXQe++nzd.n
でもまあ、言語標準(含:標準ライブラリー)で、
ユニコードの国旗を1文字として
取り扱ってくれるようなプログラミング言語はまだ少ないと思うな
内部を隠蔽して複数のビューを通じて取り出せるのも嫌いじゃない
文字列が危険物であると言う主張が伝わってくる

あとは正規表現ライブラリの使いやすいのが提供されれば嬉しい

個人的な好みだけで言うとRubyの文字列の方が好きなんだけど

330
デフォルトの名無しさん (ワッチョイ bf42-GMQd)[sage]   投稿日:2016/12/25 21:35:08  ID:LfSOKVhB0.n
>327
32もあるからね
コメント1件

331
デフォルトの名無しさん (スッップ Sddf-rd9B)[]   投稿日:2016/12/26 08:33:15  ID:ZBFCqPGMd.n
>302
一旦服を着た方が良いよ

332
デフォルトの名無しさん (スププ Sd9f-W3gD)[sage]   投稿日:2016/12/26 08:38:33  ID:+y9otMfad.n
>330
せめて32bitフルに使ってくれればいいものを
21bitしか使わないなんて中途半端なことをしてくれるから

筋の悪いUTF16なんか早々に捨てちゃえば良かったのに

333
デフォルトの名無しさん (ササクッテロラ Spbf-vGip)[sage]   投稿日:2016/12/26 14:42:52  ID:mhrTCx4Up.n
数年後、、、そこには32bitで足りなくなって64bitにしたUTFの姿が
コメント1件

334
デフォルトの名無しさん (アウアウウー Sa0f-dZB4)[sage]   投稿日:2016/12/26 15:08:39  ID:3l7Xk6fYa.n
Swiftの醍醐味教えてください!!!
コメント1件

335
デフォルトの名無しさん (ワッチョイ 8fc9-aM8P)[sage]   投稿日:2016/12/26 15:22:17  ID:TRnwbnfO0.n(2)
>333
宇宙人とシームレスに文書交換ですね

336
デフォルトの名無しさん (ワッチョイ 8fc9-aM8P)[sage]   投稿日:2016/12/26 16:20:07  ID:TRnwbnfO0.n(2)

337
デフォルトの名無しさん (ワッチョイ ef1d-W3gD)[sage]   投稿日:2016/12/27 09:45:54  ID:emRcq3HU0.n
今日詳解Swift 第3版届かなかった(´;ω;`)

338
デフォルトの名無しさん (スップ Sd9f-auU4)[sage]   投稿日:2016/12/27 10:43:59  ID:tr0nUT2nd.n
ざまあ

339
デフォルトの名無しさん (ササクッテロリ Sp4f-vGip)[sage]   投稿日:2016/12/27 11:51:09  ID:sIydEYNyp.n
konozamaかな

>334
毎年言語仕様を楽しませる感じに変更する所
いつも楽しく遊ばせて貰ってマス

340
デフォルトの名無しさん (ワッチョイ 0fbc-Jkes)[sage]   投稿日:2016/12/27 12:56:35  ID:IWLnDm1d0.n
日曜プログラマ専用言語だからなSwiftは

341
デフォルトの名無しさん (ササクッテロリ Sp4f-vGip)[sage]   投稿日:2016/12/28 07:01:13  ID:j4SHG8/Ap.n
こんな言語、業務でやろうものなら提案/採用したヤツをブン殴るレベルだよw

それをアポーが開発、保守してるのはウケる
いつコミュニティベースにして手を引くのか
4か5か、遠くもない未来だと思うんだけどなぁ
コメント2件

342
デフォルトの名無しさん (ワッチョイ 1f93-W3gD)[sage]   投稿日:2016/12/28 08:06:02  ID:Obj5weA10.n
>341
すまんうちはiOSアプリの新規プロジェクトはSwiftが第一選択肢だ
コメント1件

343
デフォルトの名無しさん (ワッチョイ 37c9-hFe5)[]   投稿日:2016/12/28 08:28:26  ID:bvnjBJpz0.n
>341
それは文法的にスジが悪いってこと?
それともまだ安定してないってこと?
前者ならObjCのほうが悪そうだし。
後者ならまだ新しいせいだし(mozillaのrustなんて1.0になるまで酷かった)。
それもほかに何かある?

344
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/28 08:38:48  ID:yWrP/m5t0.n
Appleのフレームワーク自体いつまでたっても安定してないんだから言語が多少変わろうが誤差みたいなもんさ

345
デフォルトの名無しさん (ワッチョイ 0fbc-Jkes)[sage]   投稿日:2016/12/28 09:43:05  ID:61DJDhP40.n(2)
>342
まじか、やべぇな...

346
デフォルトの名無しさん (ワッチョイ 6f10-YQ1g)[sage]   投稿日:2016/12/28 10:33:18  ID:08RViD+L0.n
メインサービスのアプリとかで、アップデートをし続けることを考えていて、保守コストがどのみち継続的に出ていくのがわかっていればSwift
逆に請負のアプリなんかで次回の発注次第で大規模なアップデートするかしないか決まる、みたいなのだったらObjective-Cがいいんじゃないの?
要は言語仕様が変更されるかもしれないコストと実装そのもののコストの差を比較してどっちが低くなるかだと思うから
お客さんにとっては言語の仕様が変わったので今回は軽微なアップデートですが工数が余計にかかりますというのは納得ができないだろうしね。
コメント2件

347
デフォルトの名無しさん (スップ Sdff-6FRj)[]   投稿日:2016/12/28 10:38:56  ID:bODOsbQ2d.n
>346
「メインサービスのアプリとか」の「とか」は、「メインサービスのアプリ」以外の何?

348
デフォルトの名無しさん (ワッチョイ 8fc9-aM8P)[]   投稿日:2016/12/28 12:29:13  ID:kFL7wfb20.n
>346
次の保守が何年後か知らんけど
古いバージョンのswiftとか
だれも読めなくなってるよな

349
デフォルトの名無しさん (アウアウウー Sa0f-RXuE)[sage]   投稿日:2016/12/28 13:07:21  ID:a+zBu4aja.n
Objective-Cからじゃなくてもおーけーでつか?

350
デフォルトの名無しさん (ワッチョイ 0fbc-Jkes)[sage]   投稿日:2016/12/28 13:36:15  ID:61DJDhP40.n(2)
C言語やったことあるならそれでもいいんじゃね?
Objective-CはC言語知ってれば普通の人ならちょこっとのコストで習得できっから
コメント2件

351
デフォルトの名無しさん (ワッチョイ ab66-DLF2)[sage]   投稿日:2016/12/28 23:06:32  ID:zgsLwAdc0.n
CやってC++の必要性がわからなくてJavaでああこういうこと…
から、Objective-C来ると「最初からこれにしろ!」ってなる。
コメント1件

352
デフォルトの名無しさん (ワッチョイ 865b-4xst)[sage]   投稿日:2016/12/29 00:28:34  ID:lKSLRFPi0.n(2)
Objective-Cは歴史は長いけどほんと温故知新な言語だと思うわ
コメント1件

353
デフォルトの名無しさん (ワッチョイ 6a93-qQw5)[sage]   投稿日:2016/12/29 00:40:51  ID:lVIy8RIr0.n
>351
c++は別の世界
踏み込みすぎると暗黒面に引きずり込まれます
Swiftの方が安全

354
デフォルトの名無しさん (ワッチョイ 4ac9-vKOO)[]   投稿日:2016/12/29 00:40:53  ID:OGBMppob0.n
>352
え?どこが?

355
デフォルトの名無しさん (ワッチョイ e366-Fh/7)[sage]   投稿日:2016/12/29 01:53:14  ID:lK2W9S2T0.n
ガベージコレクションよりリテインカウントの方がやっぱよかった。とか?

個人的にはたぶんsmalltalkからの流れなんだろうけど
恐ろしく「オブジェクトに命令を与えて何かさせる」で統一されていて
「できねぇのはそのオブジェクトの責任」で外への影響波及を最小限にしてる思想が面白かった。
(結合が疎の部分でクラス分けされていて、密な部分はC)
コメント2件

356
デフォルトの名無しさん (ワッチョイ 865b-4xst)[sage]   投稿日:2016/12/29 03:40:31  ID:lKSLRFPi0.n(2)
Objective-Cはシンプルなんだよね思想自体が

357
デフォルトの名無しさん (ブーイモ MMaa-Vq3R)[]   投稿日:2016/12/29 06:20:44  ID:13IxHxtAM.n
メッセージ投げても聴こえない振りするオブジェクトとか
返事するけど何もしないオブジェクトとか

358
デフォルトの名無しさん (ワッチョイ de42-5AW6)[sage]   投稿日:2016/12/29 07:52:07  ID:bUdbWaJH0.n(2)
>355
リテインカウントってただの関数名だぞ。
リファレンスカウントのことだとすると、swiftはリファレンスカウント方式のガベージコレクタなのでどちらか選択できる概念のものじゃない。
コメント1件

359
デフォルトの名無しさん (ササクッテロリ Spa3-fehe)[sage]   投稿日:2016/12/29 08:11:03  ID:7bfuEKFUp.n
そういう言葉尻を挙げた煽りはいいから
swiftスレでobjcの良さを語り始める>355も痛いけど、>358も痛いわ
コメント2件

360
デフォルトの名無しさん (スプッッ Sd4a-4xst)[sage]   投稿日:2016/12/29 08:26:39  ID:uZ56/Y+Td.n
自分の基準だけは正しいという前提

361
デフォルトの名無しさん (ワッチョイ de42-5AW6)[sage]   投稿日:2016/12/29 09:22:43  ID:bUdbWaJH0.n(2)
>359
根本的に理解が間違ってることを指摘したのにどこが言葉尻なん?
何を指摘したのか理解してないだろ?

362
デフォルトの名無しさん (スップ Sdaa-tTSs)[]   投稿日:2016/12/29 09:37:09  ID:NsphQCuqd.n
>359
〉そういう言葉尻を挙げた煽り

言葉尻?
自分の無知や間違いを認めない方が問題。
とても大切な事。
動きを正しく理解していないから、そういう発言になるんだよ。
理解力が低いから、わからないんだろうな。

363
デフォルトの名無しさん (ワッチョイ 3b42-bIh6)[]   投稿日:2016/12/29 10:27:38  ID:KtJtlY/K0.n
>350
できん
ソースは俺

364
デフォルトの名無しさん (ワッチョイ 0ece-O/vA)[sage]   投稿日:2016/12/29 10:55:47  ID:ZKfLUl1q0.n
>336
ぶっちゃけ、朗報じゃないな。
エィっと、即刻https 接続必須にすべきだったと思うよ。

365
デフォルトの名無しさん (ワッチョイ d33c-CBwx)[sage]   投稿日:2016/12/29 17:09:44  ID:Ql74sNGH0.n
>350
だがSwiftにどっぷり使っててたまに触るとど忘れしてるんだよな
コメント1件

366
デフォルトの名無しさん[]   投稿日:2016/12/29 20:31:48  ID:P9vMwfrX.net
XXX-Bridging-Header.hにでインポートしたヘッダファイルに書かれてる
コンパイラディレクティブ@class XXXXがswift側から見えないようで
Use of undeclared type ‘XXXX’
ってエラーがでるんですが解決方法とかありますか?

367
デフォルトの名無しさん (JP 0H4f-Vq3R)[sage]   投稿日:2016/12/30 16:15:57  ID:Q3tvxZdgH.n
>365
老化

368
デフォルトの名無しさん (ササクッテロラ Spa3-LbII)[sage]   投稿日:2016/12/30 18:28:31  ID:+0G7T/E5p.n
Xcodeの問題かと思ったけど、シンプルな状態にしてもだめぽ

$ cat bridge.h
@class Hello;

$ cat main.swift
let hello = Hello()

$ swift -frontend -c -import-objc-header bridge.h main.swift
main.swift:1:13: error: use of unresolved identifier 'Hello'

@class使わないで、素直に@interfaceで宣言したヘッダを食わせるしかないんじゃないかね
swift-evolutionにも上がってない気がするから、どうしても欲しいなら挙げてみてはどうだろう

369
デフォルトの名無しさん (ワッチョイ f31d-qQw5)[sage]   投稿日:2016/12/31 01:24:26  ID:JiRCGpmr0.n(2)
Swiftの文字列の範囲ってどうなってるの?

"いろは"..."こまち" ~= "かおり"がtrueを返すのが良くわからない
コメント2件

370
デフォルトの名無しさん (ワッチョイ d33c-Sa8B)[sage]   投稿日:2016/12/31 09:25:48  ID:mE/kuofD0.n
>369
"いろは" <= "かおり" && "かおり" <= "こまち"

371
デフォルトの名無しさん (ワッチョイ f31d-qQw5)[sage]   投稿日:2016/12/31 11:55:44  ID:JiRCGpmr0.n(2)
そういうことか
ありがとうございます

372
デフォルトの名無しさん (ワッチョイ c678-qQw5)[sage]   投稿日:2017/01/01 16:12:05  ID:LRDjbo8a0.n
>369
どうしてそう言う文字列判定をやりたくなったのかをkwsk

373
デフォルトの名無しさん (ワッチョイ f31d-qQw5)[sage]   投稿日:2017/01/01 16:49:50  ID:pJ4YqSE70.n
詳解Swift読んでたら出てきただけだよ

374
デフォルトの名無しさん (アウアウカー Sa6b-nn1e)[sage]   投稿日:2017/01/03 20:58:51  ID:i262efYCa.n
1年くらい独学でやってきたけど、最近いきづまってきたなぁ。独学というのが無理があるのか、、、
勉強会でもあれば参加したい。

375
デフォルトの名無しさん (ワッチョイ 865b-O/vA)[sage]   投稿日:2017/01/03 21:21:58  ID:mYtDE+670.n
そもそもSwift自体に無理があるから気にしなくていいと思う

376
デフォルトの名無しさん (ワッチョイ 4a3c-cI3V)[sage]   投稿日:2017/01/04 02:15:14  ID:YVtV1wPR0.n(3)
1年も独学ってどんだけ深掘りしてるのよ

377
デフォルトの名無しさん (ワッチョイ 865b-O/vA)[sage]   投稿日:2017/01/04 09:22:00  ID:ws9aPhGs0.n(3)
Swiftは仕様がコロコロかわるから学習もダラダラしちゃうんだろう

378
デフォルトの名無しさん (スッップ Sdaa-4xst)[sage]   投稿日:2017/01/04 09:55:37  ID:AKqv+vIqd.n
Swiftはモダン()さを追求してんのか知らんが、「無駄に」without Cなんだよな
ラットナーのセンスがクソ過ぎ
コメント1件

379
デフォルトの名無しさん (ワッチョイ 4ac9-CBwx)[sage]   投稿日:2017/01/04 11:42:36  ID:UeSeDktg0.n
リセットできる機会に無批判にC追従するほうがよっぽど無駄だろ
そんなんだから老害って陰口言われるんだぞオッサン

380
デフォルトの名無しさん (スッップ Sdaa-4xst)[sage]   投稿日:2017/01/04 12:14:42  ID:JWIK2up0d.n
短絡的に老害とかいう意識高い系もどうかと思うわ

381
デフォルトの名無しさん (アウアウカー Sa6b-nn1e)[sage]   投稿日:2017/01/04 12:23:42  ID:BZb3HoVpa.n
1年独学したと書き込んだものですが、もともとフォートランを少しかじったことある程度なんで、
プログラミングを1からやりたいという気持ちでした。
なかなかサンプルの内容も?となることがまだ多くて、独学の限界かもって思ってました。
コメント3件

382
デフォルトの名無しさん (ワッチョイ 865b-O/vA)[sage]   投稿日:2017/01/04 12:47:37  ID:ws9aPhGs0.n(3)
>378
>「無駄に」without C
無駄にねぇw
まあわからんでもない
べつにwithout Cはいいんだけど、Cの便利だったシンタックスも
意地でも変えなきゃいけない感は確かにあるかもな

383
デフォルトの名無しさん (ワッチョイ 865b-O/vA)[sage]   投稿日:2017/01/04 13:01:22  ID:ws9aPhGs0.n(3)
>381
発展途上なSwiftがまともに勉強する言語だというのは少し可哀想な気もするけど
一つ一つ覚えていけば難しくはないと思うけどな
行き詰まってるポイントでも書いてみればここにいるSwift愛者が答えてくれると思う

384
デフォルトの名無しさん (ササクッテロリ Spa3-fehe)[sage]   投稿日:2017/01/04 14:16:51  ID:YWPaOegwp.n
一年前のswiftってどんなだったかなぁとQiita眺めてたら
Eitherが3で公式採用される?って夢見ててワロタ
そう言えばそんなものもあったなぁ

385
デフォルトの名無しさん (ワッチョイ 4a3c-cI3V)[sage]   投稿日:2017/01/04 18:23:56  ID:YVtV1wPR0.n(3)
>381
最初にプログラミングの独学の仕方を独学することを勧める
Swiftに限って言えば今のところ英語のリソースにあたらないと厳しいと思う
コメント1件

386
デフォルトの名無しさん (ワッチョイ de42-lvqa)[sage]   投稿日:2017/01/04 18:41:03  ID:SBIBjCGJ0.n
>385
E言語の独学方法を教えてくれ。
コメント1件

387
デフォルトの名無しさん (ワッチョイ 1eba-vAWO)[sage]   投稿日:2017/01/04 18:42:19  ID:oADIImOs0.n
他人のコードを読む
以上

388
デフォルトの名無しさん (ワッチョイ d33c-Sa8B)[sage]   投稿日:2017/01/04 22:55:09  ID:MF1GJy5o0.n
>381
読む→調べる(what)→調べる(why)
https://github.com/apple/swift/tree/master/stdlib/public/core

行き詰まったら聞く

389
デフォルトの名無しさん (ワッチョイ 4a3c-cI3V)[sage]   投稿日:2017/01/04 23:50:11  ID:YVtV1wPR0.n(3)
>386
まず目的の質を高めるのが大事
具体的に解決したい問題が念頭にあるかどうかで学習効率が大きく変わってくる

何のためにプログラミング言語を学ぶのか?
プログラミング言語を学ぶことで解決したい問題は何なのか?

例えば以下の3つなら3番目が断然学習効率が高い(エロ最強)
- 関数型プログラミングの考え方を知るためにHaskellを学ぶ
- iOSアプリを作れるようになるためにSwiftを学ぶ
- エロ動画のコレクションを自動生成できるようになるためにJavaScriptを学ぶ
コメント1件

390
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/05 00:05:47  ID:JJBRc58h0.n(2)
(続き)
1. 目的の質を高める

2. 信頼できる優れたリソースを選ぶ
   - チュートリアル、本、動画、オンラインコース、その他
   - スタンダードライブラリ、サードパーティライブラリ、その他ソースコード

3. 短期間に集中して学ぶ
   - 本なら1冊2週間以内が理想、どんなに長くても1ヶ月

4. 読むだけ見るだけじゃなく必ず手を動かす
   - 写経するだけでもやらないより格段にいいが自分で考えてコードを書く問題があると身につきやすい

5. ノートを取る
   - 本を読み返さなくてもある程度復習できるように
   - 自分の場合はアウトライナーを使ってる(マインドマップとかでもいいと思う)

6. 学びながら作る
   - 自分が欲しいと思う簡単なツールを学びながら作る
   - 例えば「セール中アプリを通知するツール」等
   - 言語を学ぶためにはCUIツールのほうが効率がいい
   - テキスト処理・ファイル処理・Webスクレイピング等

7. メモる(ノートとは別)
- HOWTO/Tips:〜したい場合にはどうすればいいのか?
- WHY:なぜXXじゃなくYYするのか?
- ERROR:発生したエラー内容とその原因、再発防止策
- VOCABULARY:用語、概念
- REFERENCE:公式ドキュメント、Style Guide、リファレンス

以上が自分のやり方だけど目的や人によってやり方は変わるはず
コメント1件

391
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/05 00:11:19  ID:JJBRc58h0.n(2)
長文スマソ

良いコードを書くためにはたくさん読んでたくさん書いてたくさん書き直すのが大事だけど
新しいプログラミング言語を身につけるためには自分が使う道具を作ってみること(上の6番)が最重要な気がする

392
デフォルトの名無しさん (ワッチョイ 6f5b-9Pqs)[sage]   投稿日:2017/01/05 00:12:03  ID:t0+k7rBa0.n
Swiftとか不向きすぎだろ

393
デフォルトの名無しさん (ワッチョイ 5b3c-IbiL)[sage]   投稿日:2017/01/05 01:08:30  ID:RQyVxWdy0.n
SwiftのプロはSwiftで自家発電してるからな
そりゃ上達するわけだよ

394
デフォルトの名無しさん (スッップ Sdff-9Pqs)[sage]   投稿日:2017/01/05 01:11:24  ID:YFuTJ90Hd.n
Swiftが始めて学ぶ言語なのは絶対おすすめしない
変な癖がついて他言語学ぶときの障害になる
コメント1件

395
デフォルトの名無しさん (ワッチョイ 1b66-SevC)[sage]   投稿日:2017/01/05 06:39:39  ID:R8ehuYNe0.n
変な癖というか、なんでこれAppleがプッシュしちゃったのかわからんけど
後々に次世代になるポテンシャルはあるのかもしれんが
まだ海の物とも山の物ともつかない発展途上の言語で
なにより古参が困ってるのは

"別にこれでプログラミングが楽になるわけでもなんでもない、
理念なき新しい文法の新言語いつものように一個追加されただけ"
だってとこなんだよなぁ… 特に使う意味がない…
コメント1件

396
デフォルトの名無しさん (JP 0H3f-q3aP)[sage]   投稿日:2017/01/05 06:59:23  ID:42rV0dhtH.n(2)
>394
わかりますω

397
デフォルトの名無しさん (JP 0H3f-q3aP)[sage]   投稿日:2017/01/05 07:00:36  ID:42rV0dhtH.n(2)
>395
健保と住基とマイナみたいな

398
デフォルトの名無しさん (ワッチョイ ab8f-S2pU)[sage]   投稿日:2017/01/05 10:22:06  ID:xO3cTqiR0.n
初めて使う言語にoptional型があると
面倒くさいとしか思わないかな?
null地獄
コメント1件

399
デフォルトの名無しさん (ワッチョイ db1d-+flj)[sage]   投稿日:2017/01/05 10:37:51  ID:J4n9XDOy0.n
どうしてCGPointの位置がCocoaだと長方形の左下で、Cocoa Touchだと長方形の左上なんだろうね
コメント1件

400
デフォルトの名無しさん (ワッチョイ 1b7b-spyU)[]   投稿日:2017/01/05 12:13:39  ID:rS/TqFdr0.n
>398
全てのオブジェクトの変数がoptionalであるJavaで入門する奴が多いんだからそこは大した問題じゃなくね

401
デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)[sage]   投稿日:2017/01/05 12:35:52  ID:PwoXhQQ80.n
>399
数学意識して左下にしていたのを実用重視で改めたのでは

402
デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)[sage]   投稿日:2017/01/05 15:08:20  ID:zjhRqjNop.n(2)
nullが許されない言語仕様ってrust推しかよ

初めて使う言語がObjCだった人も多いしswiftでも別にな
ObjCメッセージ文法が至上なのはいいけど、汎用性がねぇw
Swift Optional型なんざそれに比べれば誤差よのう

403
デフォルトの名無しさん (アウアウウー Sa3f-IW1l)[sage]   投稿日:2017/01/05 15:50:12  ID:WkTIUcDja.n
ヌルが入る入らないを意識してプログラムするか?
コメント1件

404
デフォルトの名無しさん (ブーイモ MMff-S2pU)[sage]   投稿日:2017/01/05 17:18:55  ID:oFOZ2y/SM.n
いっそのことrustを採用してくんないかな、iphoneのためだけに新言語とかめんどい
コメント2件

405
デフォルトの名無しさん (ワッチョイ dfc9-f1yY)[sage]   投稿日:2017/01/05 17:32:58  ID:sWdRcuvD0.n
それいっちゃRustはFirefox書き直しのためだけの新言語なんだが…

406
デフォルトの名無しさん (スップ Sdff-oQtP)[sage]   投稿日:2017/01/05 18:22:18  ID:YNtiq33Od.n
>404
ほんとこれ

407
デフォルトの名無しさん (ブーイモ MM3f-twlg)[sage]   投稿日:2017/01/05 20:45:21  ID:P+GiqLXdM.n

408
デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)[sage]   投稿日:2017/01/05 20:47:15  ID:zjhRqjNop.n(2)
rustはiOSで使えるクロスコンパイラが公式提供されてるんだから使えば?と思うけど
それはそれとして、 swiftがヤならobjcでいいじゃん、、、
どっちもイヤならアポー端末を諦めろというね

409
デフォルトの名無しさん (ワッチョイ 0f42-HvS5)[sage]   投稿日:2017/01/05 21:15:32  ID:P4uSEloo0.n
Swiftオープンにするっていってたやん!

410
デフォルトの名無しさん (ワッチョイ 0fba-oQtP)[sage]   投稿日:2017/01/05 21:58:08  ID:jBQh1CN00.n
オープンにしただろいい加減にしろ

411
デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)[sage]   投稿日:2017/01/06 00:00:22  ID:bcUwFgd80.n
iPhone(Apple)専用言語という意味ではObj-CもSwiftも一緒だけど
初めて学ぶ言語ならObj-Cの方がCの勉強にもなるからSwiftより断然まし
SwiftはObj-C以上に排他的変態的シンタックスだから初学者には
やっぱり個人的にはお勧めできないわ

412
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/06 00:22:09  ID:Y1Cw0qRA0.n(4)
排他的変態的シンタックスってどの辺のこと言ってるの?
そんな特殊だと感じることはないんだが

Objective-Cに比べると格段にタイプ量が減って見た目もスッキリするから
個人的にはそれだけでも大きなメリット

413
デフォルトの名無しさん (ワッチョイ 1b66-SevC)[sage]   投稿日:2017/01/06 00:28:39  ID:BpurgW/q0.n(2)
>タイプ量が減って
職業プログラマ特有のこの価値観がもうゲロ出るぐらい嫌い

414
デフォルトの名無しさん (ワッチョイ dfc9-f1yY)[sage]   投稿日:2017/01/06 00:33:12  ID:PzH0fr810.n
Swiftが排他的変態的とか他の言語知らなさすぎるだけだろ
プログラマとして勉強不足なのバレバレだぞ

415
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/06 00:33:15  ID:Y1Cw0qRA0.n(4)
はあそうか
タイプはXcodeが補完してくれるから実質的にはそこまでの違いはないかもしれないんだが
文字を読む量が違うんだよ でそれはバグの量に直結するかんね
コメント1件

416
デフォルトの名無しさん (ワッチョイ 1b66-SevC)[sage]   投稿日:2017/01/06 00:50:24  ID:BpurgW/q0.n(2)
>文字を読む量が違うんだよ でそれはバグの量に直結するかんね
はぁ。
あなたは一生work1にwork2から変数A1を代入してこれでバグが少ない!とほざいててください。それでいいよ
コメント1件

417
デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)[sage]   投稿日:2017/01/06 01:05:43  ID:/fM3tdtK0.n
タイプ量の少なさは職業プログラマ云々より
関数型言語界隈からの価値観というか流れでは

418
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/06 01:57:40  ID:Y1Cw0qRA0.n(4)
>416
読む量が減ればバグが減るって言ってるのに増やしてどうすんねんw

419
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/06 01:58:56  ID:Y1Cw0qRA0.n(4)
workなんて言葉久しぶりに聞いたけど
今でも普通に使われてる言葉なの?

420
デフォルトの名無しさん (ワッチョイ dfc9-6vgr)[]   投稿日:2017/01/06 02:18:34  ID:EL7IyQQ80.n
>404
同意

421
デフォルトの名無しさん (ワッチョイ 5f93-+flj)[sage]   投稿日:2017/01/06 07:52:01  ID:Q/mvZ92R0.n
>389
>390
お前良い奴だな
なかなかいい学習ノウハウだ

おれRuby勉強した時は良質なxx写真がアップされているスレを解析して
スレ内のURLから写真を片っ端からダウンロードするプログラムを書いたな

そう言えば大学院の先輩に英語の速読できるようになりたいと聞いた時の回答は「Hな本読むといいです」だった

つまりエロ最強!

422
デフォルトの名無しさん (スプッッ Sdff-B9xl)[]   投稿日:2017/01/06 12:21:21  ID:RUdDycfgd.n
>415
そう、冗長だと見通しが悪すぎる。
半分はライブラリ設計のせいで、残りはc言語のせいの気もするけど。

423
デフォルトの名無しさん (ワッチョイ bb10-51vH)[sage]   投稿日:2017/01/06 19:38:50  ID:Gq0Nc1/d0.n
Obj-CのNSArrayとかNSDictionaryのシンタックスシュガーなかったころはマジで横長になりすぎて読みづらかったけどね。
同等のJavaのコードに比べて、単に配列から値を取り出してるだけの行も複雑な命令を実行してる行も同等に横いっぱいになるから飛ばし読みがしづらくてしっかり読む必要があった。
わけのわからない変数名や関数名をつけて短くていいよねみたいな話ではないよ。BASICとかの時代じゃないんだからさぁ。

424
デフォルトの名無しさん (ワッチョイ 2b0c-tEgc)[sage]   投稿日:2017/01/07 00:28:19  ID:DNozFqRa0.n
ポインタ周りをもうちょっとC寄りにしてくれたらなぁ。

別ファイルで objc コード書くと見通し悪いから、Swift に局所的に objc コード埋め込めたりすると面白いかな、
C#のunsafeとか __asm {} みたいに。欲を言えば言語指定クロージャみたいな感じ
コメント2件

425
デフォルトの名無しさん (ワッチョイ 5f93-+flj)[sage]   投稿日:2017/01/07 08:53:14  ID:4HC1Pjzk0.n(2)
>424
それじゃwithout cにならないべ

426
デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)[sage]   投稿日:2017/01/07 08:55:58  ID:72YrLFZp0.n(3)
だからwithout Cにする意味がないんだって

427
デフォルトの名無しさん (ササクッテロリ Sp3f-L2iV)[sage]   投稿日:2017/01/07 08:57:56  ID:182Vw6zJp.n
それこそ可読性が悪いソースになりそう

428
デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)[sage]   投稿日:2017/01/07 09:19:02  ID:OQtShFizp.n(3)
HTMLの中にプログラム書けると可読性よくね? > PHPスゲー

なお、現在は、、、

429
デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)[sage]   投稿日:2017/01/07 09:31:45  ID:72YrLFZp0.n(3)
「無駄に」without CなSwiftならではの悩みだな

430
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/07 09:37:34  ID:iBRfuxUXa.n
可読性を犠牲にしてまでもSwiftのソース中にCのソース埋め込めたらなぁ
って思う時って例えば具体的にどういうケースなんだろ
ただ単にC言語に慣れててすぐ書けるからってことじゃないよね?
コメント1件

431
デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)[sage]   投稿日:2017/01/07 12:02:53  ID:OQtShFizp.n(3)
>424はSwift中にCが書けると可読性良くなると思ってるから質問に答える人がいない

一応、UnsafeMutablePointerを操作するよりはCの生ポインタ操作出来る文法が楽ってのはあるけど
Swiftでポインタ操作が必要なら自前ラッパーAPIで隠蔽して上位レイヤーでは気にしなくて済むようにするよ

432
デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)[sage]   投稿日:2017/01/07 12:17:38  ID:72YrLFZp0.n(3)
細かい操作を実装できるCの柔軟性は強いよね
Obj-Cなら何も考えずそのまま実装できたことをSwiftでやろうとした時
どうするかって話だね
without Cを高らかに謳っているのだから仕方ないね
頑張ろう

433
デフォルトの名無しさん (オッペケ Sr3f-6vgr)[]   投稿日:2017/01/07 17:26:53  ID:UVIgJaZNr.n
>430
システムコール使うときとか?

434
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/07 17:53:33  ID:p94OVxAQ0.n(6)
別スレで話に上がってたけど
ファイルを行単位で読んで処理しようとする時とか
CのAPI使ったほうがスッキリ書けたりするケースがあるんだよね
http://stackoverflow.com/a/24669956/1000690
コメント6件

435
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/07 18:02:35  ID:hf6ybaU+a.n
>434
でも、それ別ファイルにCで記述して、Swiftから呼ぶようにした方がメンテナンス性あるんじゃね?
コメント1件

436
デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)[sage]   投稿日:2017/01/07 18:34:39  ID:OQtShFizp.n(3)
CR, LF, CRLFを認識出来てないそのコードは危なかろうて
回答上位にある汎用クラス作って云々が良いとも思わないけども

そういうフォローをちゃんとした単純関数で実装したらCでもSwiftでも大して変わらんよな
、、、Swiftなら全データをStringに突っ込んで、改行文字でsplitとか乱暴するのも一興か
コメント1件

437
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/07 18:52:21  ID:p94OVxAQ0.n(6)
>435
どうだろうね?
別ファイルにしてAPIのインターフェース考えて実装してメンテナンスしていく手間をかけるだけのメリットがあるのかどうかによるよね

>436
メモリのフットポイントを気にしないならSwiftでもそう変わらないだろうけど
気にするならNSDataとかで処理しないといけないからSwiftのほうが面倒だと思うよ
コメント1件

438
デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)[sage]   投稿日:2017/01/07 19:10:10  ID:IyWm4kw10.n(3)
この手のはアドホックなことせずに
バイトストリーム、キャラクタストリーム, レキサー/パーサーに分けて繋げた方が後が楽だと思う
コメント1件

439
デフォルトの名無しさん (ワッチョイ 2bf8-+flj)[sage]   投稿日:2017/01/07 20:04:55  ID:Gk0CJ/2J0.n
>434
CのAPIの方が簡単と言うのはプログラマが担保しなきゃいけない安全確認とかを全部すっ飛ばして書けるからであって

必要な安全性を確保しながらコード書くならSwiftの方が簡単だよ
コメント2件

440
デフォルトの名無しさん (ワッチョイ 6fa2-+flj)[sage]   投稿日:2017/01/07 20:37:16  ID:w3Yo/XU60.n
withoutCマンセーと言われましても
SIMD使う時とかはしょうがないよね?

そういうケースが稀なのは認める。

441
デフォルトの名無しさん (ワッチョイ dfc9-f1yY)[sage]   投稿日:2017/01/07 20:48:06  ID:eRueAzeT0.n
without CはSwift単体の文法の話であって、別にCとの適材適所・協調/協働を否定する標語では全くないのにわざと混同してる奴がいるな?

442
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/07 20:52:00  ID:UTTve38fa.n(2)
>437
別ファイルにするにしても、同一ソース内に埋め込むにしても、データ受け渡しのためのインタフェースは考えないといけないだろ
コメント2件

443
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/07 21:18:40  ID:p94OVxAQ0.n(6)
>439
そういうケースもあるだろうけど例として上げたケースは
用意されてるCのAPIを使うかSwiftで自作のAPIを作るかの違い

>442
コード見たの?

import Darwin
let bufsize = 4096
// let stdin = fdopen(STDIN_FILENO, "r") it is now predefined in Darwin
var buf = UnsafePointer<Int8>.alloc(bufsize)
while fgets(buf, Int32(bufsize-1), stdin) {
print(String.fromCString(CString(buf)))
}
buf.destroy()
コメント3件

444
デフォルトの名無しさん (スププ Sdff-+flj)[sage]   投稿日:2017/01/07 21:48:31  ID:A7PZcJW4d.n
>443
>用意されてるCのAPIを使うかSwiftで自作のAPIを作るかの違い

そこに「用意されているSwiftのAPIを使う」と言う選択肢がないのがおかしくないかい?

SwiftならファイルパスでStringを初期化してenumrateLinesするだけでいいから
CのAPIでゴチャゴチャ作るよりはるかに簡単で安全だよ?


例えばあなたが>443の下部で引用しているCの関数を使った例では
バッファサイズとして4096を取っているから
一行が4095文字以上の入力を受けると正しく動作しなくなっちゃうよ
この制限をC言語で解決するのは結構面倒くさいよ
コメント1件

445
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/07 21:49:05  ID:UTTve38fa.n(2)
>443
コード見たよ
で?
コメント1件

446
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/07 21:55:01  ID:p94OVxAQ0.n(6)
>444
>SwiftならファイルパスでStringを初期化してenumrateLinesするだけでいいから

それメモリに全部読み込んでるでしょ?
極端な例だけど300MBのファイルだとして全部最初にString化するの?
コメント1件

447
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/07 21:55:42  ID:p94OVxAQ0.n(6)
>445
見てて>442みたいな考えなら特に言うことはない

448
デフォルトの名無しさん (スプッッ Sdff-GcKO)[]   投稿日:2017/01/07 22:12:08  ID:DTtrdLJ+d.n
>434
「ファイルを行単位で読んで処理しようとする時とか」の「とか」は、「ファイルを行単位で読んで処理しようとする時」以外の何?

>439
「プログラマが担保しなきゃいけない安全確認とか」の「とか」は、「プログラマが担保しなきゃいけない安全確認」以外の何?


そんな「とか」の使い方じゃ、まともな仕様は作製できない。
コメント1件

449
デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)[sage]   投稿日:2017/01/07 22:21:44  ID:IyWm4kw10.n(3)
研鑽兼ねて>438で書いたこと自分でやってみた
http://swiftlang.ng.bluemix.net/#/repl/5870e7500f558d57abf31839
・セル内の改行に対応
・パイプライン的に処理(バッファ境界でUTF8が破断することも無し)
・改行コードはちょっと端折り
コメント1件

450
デフォルトの名無しさん (ワッチョイ 5f93-+flj)[sage]   投稿日:2017/01/07 23:25:32  ID:4HC1Pjzk0.n(2)
>448
残念ながらこれは仕様書ではない

安全確認以外の何かを明確にするにはまず安全とは何かを定義しなければならないが
それを定義にするのは本来の議論の範囲外であり、
議論の本質の理解の妨げになるためあえて定義を行わなかった

そこで、明確に定義されていないことを明確に示すために「とか」を用いている


そう言うことを聞きたいわけ???

451
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/07 23:32:17  ID:p94OVxAQ0.n(6)
>449
超できる子だな

Swiftのシーケンスって読み終わったところからメモリ開放されるのかな?
そうじゃなければ別途chunkに分割しないと全処理時は最終的にメモリに乗るよね
コメント1件

452
デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)[sage]   投稿日:2017/01/07 23:54:15  ID:PPvI4deGp.n
出来ない子だな、お前は教えて君か

453
デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)[sage]   投稿日:2017/01/07 23:55:36  ID:IyWm4kw10.n(3)
>451
Iteratorのクロージャが強参照してるもの以外は順次開放されるよ
UTF8デコーダと内部バッファ(4バイト?)、字句解析用の変数(end,hold)、
1レコード分(row:[String])がメモリ消費する

Array(parseCsv(...))すると全部抱えてしまうのでforEachで1レコードずつ処理する必要はある
コメント1件

454
デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)[sage]   投稿日:2017/01/08 00:11:05  ID:JrkgmnK40.n(2)
あと filePath → AnyIterator<UInt8>
http://swiftlang.ng.bluemix.net/#/repl/587104360f558d57abf31847
コメント1件

455
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/08 00:46:34  ID:9hp7bz6e0.n(3)
>453
そっかありがとう

>454
すげーな 超参考になる
ファイル読み込みはchunkでやるけどあとはバイトストリームで処理できるから境界の心配しなくていいのね
こういうシーケンス使った考え方を知るのになんかオススメの本とか資料とかもしあったら教えて
Swiftじゃなくてもいいので
コメント1件

456
デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)[sage]   投稿日:2017/01/08 09:45:34  ID:qkk6ZrX+0.n
->って何?アロー演算子ですか?^^
コメント1件

457
デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)[sage]   投稿日:2017/01/08 10:12:37  ID:JrkgmnK40.n(2)
>455
今ググって見つけたページではあるけど、こういうから知識を拾っておくと良いかも
http://hexadrive.jp/hexablog/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9...
http://ufcpp.net/study/csharp/da_about.html
http://postd.cc/pipes-and-filters/
の前半あたり
http://www.aerith.net/design/Decorator-j.html

切り分け方は先人に学ぶ感じで
http://kmaebashi.com/programmer/devlang/yacclex.html
https://msdn.microsoft.com/ja-jp/library/cc351995.aspx

用語バラバラだから似てるもので並べると
Swift3のSequence(2のSequenceType) ≒ AnyIteratorを返す関数
≒ JavaのIterable ≒ Pythonのジェネレータ ≒ C#のイテレータブロック/IEnumerable

Swift3のIteratorProtocol(2のGeneratorType) ≒ AnyIterator
≒ JavaのIterator ≒ Pythonのイテレータ ≒ C#のIEnumerator

※AnySquence, AnyIteratorはジェネリクス対応用(型消去法)
コメント1件

458
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/08 17:36:54  ID:9hp7bz6e0.n(3)
>457
ありがとう
心のなかでマスター先生と呼ばせてもらうよ

素養が違うからか教えてもらった記事からだとマスター先生の考え方に近づけそうにないんだが
もう少し頭のなかをストリーム化できるように日々修行するわ

459
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/08 17:40:12  ID:9hp7bz6e0.n(3)
>456
関数の戻り値の型

func greet(person: String) -> String {…}
↑Stringを返す関数

460
デフォルトの名無しさん (ワッチョイ 5f93-+flj)[sage]   投稿日:2017/01/09 00:00:23  ID:eHS8l2Ef0.n(5)
>446
300MByteなら躊躇せずオンメモリで処理するかな?
1GByteならちょっと悩んでストリーム処理にするけどそれは実際に1GByteのファイルを喰らってから考える
遅くなるだけで処理としては破綻してないし

enumerateLinesでイテレート処理してれば
ストリーム処理にする場合でも行単位で文字列を取り出せるイテレータを定義するだけで
後段はそのまま使えるから移行は比較的楽

逆に
Cの関数で4095バイトとかバッファサイズで打ち切られちゃうと
4095文字以上の行に対応させるには
バッファの確保やマルチバイト文字の整合性とか色々考えるのが面倒


要するにCで書いてもSwiftで書いても簡単に書けるのは入門書のサンプルプログラムレベルのもので
細かいチェックを入れるとどちらもそこそこ書き込みが必要

その上で
1行が4095文字を超えると破綻するCの関数がいいと思うか
巨大ファイルを渡されると処理速度が遅くなる可能性のあるSwiftの標準関数を使うか
と言うだけの話だと思うよ

で、Swiftでプログラム書いてる途中でこの処理が必要なら
俺ならSwiftで書く方を選ぶと思う
コメント1件

461
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/09 00:13:07  ID:vNdwgc8fa.n(3)
Perl最強


#!/usr/bin/env perl
while (<>) { print; }

462
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/09 00:18:04  ID:vNdwgc8fa.n(3)
shellと組み合わせれば無敵
ちょっとした変換も簡単実装

cat lower.txt | perl -e 'while(<>) { print uc; }' > upper.txt

463
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/09 00:57:25  ID:JTALZxOQ0.n(5)
>460
1GB使ったらiPhone6以下なら毎回クラッシュだよ
メモリの使用量を抑えつつ巨大なテキストファイルを読み込む時にどう処理するかって時の例だから
そこをすっ飛ばしたら意味ないがな

>Cの関数で4095バイトとかバッファサイズで打ち切られちゃうと
バッファサイズは状況に応じて変更すればいいでしょ?
それに本当に必要なら読み込んだバッファの最後の文字が改行じゃなければ次を読み込んで足してから処理すればいい
個人的にはそういう処理が必要になるようなケースには出会ったことがないけど

NSStream+NSDataとかでも同じことできるんだけど少し余計に手間がかかるから
Cを選ぶ人がいてもいいんじゃないかって話だ
コメント2件

464
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/09 01:06:52  ID:vNdwgc8fa.n(3)
まぁ、データの入力ミスとか、誤ってバイナリデータ読ませちゃうこともあり得るからな

465
デフォルトの名無しさん (ワッチョイ 5f93-+flj)[sage]   投稿日:2017/01/09 01:26:40  ID:eHS8l2Ef0.n(5)
>463
>バッファサイズは状況に応じて変更すればいいでしょ?

プログラムはどうやって状況を判断するんだ?
日本語の小説流し込んだら簡単に1行がメガバイト単位になるぞ?
コメント3件

466
デフォルトの名無しさん (ワッチョイ 0fba-oQtP)[sage]   投稿日:2017/01/09 02:22:19  ID:9ACblGiY0.n
まとめられててワロタ

467
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/09 04:04:22  ID:JTALZxOQ0.n(5)
>465
別スレで質問してた人?
バッファサイズ考えるより前にそのファイルの入手方法を考えなおしたほうがいい気がするが
コメント3件

468
デフォルトの名無しさん (ワッチョイ 5f93-+flj)[sage]   投稿日:2017/01/09 11:54:09  ID:eHS8l2Ef0.n(5)
>467
>別スレで質問してた人?

違うよ

単に俺(>467)が>434に難癖つけてるだけだよ

Cで書いた方が簡単な事もあるの例に
文字列I/Oって言う危険物を持ってきた上で
安全チェックもしてないコードを引用して、ほらCで書いた方が簡潔でしょ?
と言う論調がおかしいと思ったんで噛み付いてる

確かにCで書いた方がいい事もいっぱいある
だけど少なくともI/Oとか文字列処理とかC言語の中でも1番の危険物を持ってきて
危険だと言うことを知らせずにCで書いた方が簡単な例に上げるのはどうかと思うよ

こう言う危険性もあるけど、swiftからcの関数を呼び出せばこう言う書き方も出来るよ程度にしておいて欲しい
コメント3件

469
デフォルトの名無しさん (ワッチョイ 5f93-+flj)[sage]   投稿日:2017/01/09 11:55:28  ID:eHS8l2Ef0.n(5)
>468
すまんあんかミス

>単に俺(>467)が>434に難癖つけてるだけだよ
おれは>465ですた

470
デフォルトの名無しさん (ワッチョイ 7bcf-q3aP)[sage]   投稿日:2017/01/09 12:49:46  ID:4OeNzyzM0.n
>468
入力が固定されてるなら問題ないと思う
コメント1件

471
デフォルトの名無しさん (ワッチョイ 5f93-+flj)[sage]   投稿日:2017/01/09 13:58:21  ID:eHS8l2Ef0.n(5)
>470
ファイル入力で常にこちらの思い通りのデータしか来ないことを想定するの?

入門書のチュートリアルならそれでもいいけどさ

入力データをこちらで決める事ができるなら
JsonとかXMLとかRealmとかのこなれたライブラリが存在するファイル形式を採用する方がいいと思うよ

そんなことを考えるとswiftの中でcを直接使うことの優位性はあまり無いと思うんだ

472
デフォルトの名無しさん (アウアウカー Sa3f-7kys)[]   投稿日:2017/01/09 14:53:15  ID:C7tBzNeYa.n
オートレイアウト使ってるやつなんているのかな?まじでゴミだと思うんやが
コメント2件

473
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/09 15:21:45  ID:abgacrATa.n
まぁ、ほぼC言語使えるんだけどね
書き方の慣れの問題だけで

let lineSize = 1024
if let file = fopen(filePath, "r") {
 let data = UnsafeMutablePointer<Int8>.allocate(capacity: lineSize)
 defer {
 data.deallocate(capacity: lineSize)
 }
 while((fgets(data, Int32(lineSize), file)) != nil) {
  if let str = String(utf8String: data) {
   print(str)
  }
 }
}

>472
バリバリ使ってるよ
コメント1件

474
デフォルトの名無しさん (スッップ Sdff-GcKO)[]   投稿日:2017/01/09 15:25:37  ID:ynBqv2kkd.n(2)
>472
中上級の奴が使いたがるんだよね。
で、viewDidLoadで、IBOUTLETのframeいじって「変わらない!Xcodeのバグだっ」て騒ぐんだよね。

お前が世の中のバグだから。


ライフサイクル解らないグズだから。

475
デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)[sage]   投稿日:2017/01/09 15:32:05  ID:rN+gQaLTp.n
>473


なんか長文くんまで現れてやってたけど結局これよな
しかし UnsafeMutablePointer を let 宣言できるのが相変わらずキモい
特別扱いできないものかねぇ

476
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/09 17:35:13  ID:JTALZxOQ0.n(5)
>468
そっか別人か
そのメガ単位で改行されてないテキストファイルって一般的なの?
平均3バイト/文字としても3MBで100万文字だよ?

fgetsやfscanfと同じ機能を持つAPIは今のところSwiftにはなくて
同じようなことをしようとするとどうしても結構な量のコードを書く必要があるから
CのAPIを使いたい場合の例として>434を上げた

UnsafePointerを扱うってことは
メモリ周りで問題を引き起こすコードを書く危険性が高まるってことだからそこを天秤にかける必要性はわかる
ただそれ以外の安全チェックとか危険性とか言ってる部分はSwiftなら全部面倒みてくれるわけではないよね

477
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/09 17:49:07  ID:JTALZxOQ0.n(5)
>465
別人だってことなので一応この質問に答えとくと
プログラムで扱うファイルの1行の最大長が予測可能な範囲にあるならそれに応じてサイズ変更すればいいって意味ね
そうじゃないなら>463に書いたようにバッファ内に改行があるかどうかをチェックして複数回バッファ読んでから処理する
この辺はC使っても使わなくても同じ

100MBを超えるようなテキストファイルってログファイルくらい処理しかないから発想が貧弱なのかもしれないけどね
コメント2件

478
デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)[sage]   投稿日:2017/01/09 17:51:25  ID:LuXubKyCp.n(2)
データ受け渡しのためのテキストファイルに改行コードいれるかどうかは設計者の決めることだからなぁ

479
デフォルトの名無しさん (スッップ Sdff-GcKO)[]   投稿日:2017/01/09 17:58:25  ID:ynBqv2kkd.n(2)
>477
ログ以外だと、何かのデータファイルをCSVで書き出したケースも考えられる。
過去やったのだと、クイズを出すアプリで、問題をひたすらテキストファイルで持っていた。

でも、移動体端末で、でかいファイルを処理するのって、基本的なarchitectureを考え直した方が良い気がする。

480
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/09 18:09:09  ID:JTALZxOQ0.n(5)
>基本的なarchitectureを考え直した方が良い気がする。
100%同意
iOSならテキストデータのインポート・エクスポート時が一番のユースケースだろうね
コメント1件

481
デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)[sage]   投稿日:2017/01/09 18:49:37  ID:LuXubKyCp.n(2)
htmlもxmlもJSONも改行コードは必須じゃないからなぁ
コメント1件

482
デフォルトの名無しさん (ワッチョイ 5b3c-GcKO)[]   投稿日:2017/01/09 19:35:52  ID:Mfdzy40n0.n
>480
まあ、
>477
さんの言う通りログなら仕方ないんだけれどもね。

ただ、そんなデカイログを端末で見るというarchitectureが・・・以下自粛。

483
デフォルトの名無しさん (ササクッテロロ Sp3f-+flj)[sage]   投稿日:2017/01/09 19:38:32  ID:uxZFBykMp.n
Autolayoutが使えないのは論理的思考の出来ない馬鹿
あんなもん設定した通りの優先順位付けで表示されるだけだろ

484
デフォルトの名無しさん (ワッチョイ 0f7b-MPfw)[sage]   投稿日:2017/01/09 23:59:11  ID:qvjxruLM0.n
ログなんて、圧縮するだろ

JSのファイルでも、Minify とかで圧縮する

485
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/10 00:08:49  ID:qN25f4rba.n
それがどーした?

486
デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)[sage]   投稿日:2017/01/10 09:52:08  ID:0L0fi+PIp.n(4)
CとSwiftでraw文字列の読み込みの実装難易度が違う
って話だったのに、データ構造だのAuto Layoutだのを議論しててワロタ

487
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/10 10:27:31  ID:hQEZjrPha.n
初心者かな
話が飛ぶのは2chではよくあることだから
コメント1件

488
デフォルトの名無しさん (スプッッ Sdff-oQtP)[sage]   投稿日:2017/01/10 10:40:39  ID:L0gptR0Sd.n
で?

489
デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)[sage]   投稿日:2017/01/10 10:53:58  ID:FDJAHjJcp.n(3)
ん?

490
デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)[sage]   投稿日:2017/01/10 10:56:22  ID:0L0fi+PIp.n(4)
>487
お前バイク板住民かよぉ
(今もあそこがアレな板なのかは知らん)

491
デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)[sage]   投稿日:2017/01/10 11:17:06  ID:FDJAHjJcp.n(3)
最初は文字列の読み込みうんぬんというより、インラインでC言語を記述したいって話じゃなかったっけ?
で、そのあと、具体例として、ファイル読み込みの話になって、C言語で書いても可変サイズの行だと面倒じゃね? という話になって、そっからデータ構造の話に発展して、どさくさ紛れに、Auto Layoutの話を入れてくるKYが現れて、ってのがここまで流れだと思ったが...
まぁ、別に同じスレッドで違う話題を同時に扱うなって決まりはないしな

492
デフォルトの名無しさん (ワッチョイ df2b-vyGv)[sage]   投稿日:2017/01/10 11:44:11  ID:nWa+BtAl0.n
プログラム技術@2ch掲示板
> ネタ、板とは関係の無い話題はご遠慮ください。

決まりはあるんだけどな
Inline C in Swiftはネタ(当人はマジの様子)だけど、それ以降はSwiftに絡めたネタも少なく・・・
データ構造やAutoLayoutを話すのはいいが、ネタとしてSwiftを絡める努力をしよう(他人事

493
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/10 11:56:12  ID:1oVGbtNGa.n
プログラム技術板で、データ構造やAPI絡みの話を交えるなっつうのは頑固すぎるわ
AutoLayoutに至っては4レスあっただけなのに
Swiftと全く無関係ってわけでもないやろ

494
デフォルトの名無しさん (スププ Sdff-+flj)[sage]   投稿日:2017/01/10 12:28:56  ID:VHs9RTlPd.n
Swiftでファイルダンプするだけならこれで良くね?

while let l = readLine() {
print( l )
}

ただしファイルを標準入力にリダイレクトしておく

FileHandleにreadLineが定義されていないのが謎
コメント1件

495
デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)[sage]   投稿日:2017/01/10 12:35:10  ID:0L0fi+PIp.n(4)
イマドキのAPI設計的にはFileHandlerと切り離したReaderがあるんじゃね
SwiftのCoreAPIにReaderがないのは3rd party libにぶん投げしてる気がする

496
デフォルトの名無しさん (ワッチョイ dfc9-f1yY)[sage]   投稿日:2017/01/10 14:03:45  ID:8RubTyxI0.n(2)
Foundationが貧弱なのが悪い

497
デフォルトの名無しさん (ワッチョイ 7bcf-q3aP)[]   投稿日:2017/01/10 14:08:24  ID:s989ZmsY0.n
>481
昔の2ちゃんのhtml思い出した

498
デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)[sage]   投稿日:2017/01/10 15:07:36  ID:tt6nQotl0.n(2)
型推論ネタ, 以下Aは動くがBはmapに呪いが掛かってしぬ

// A
let s = sequence(first:0){$0+1}
.lazy
.map{$0*2}
s.prefix(10)
.reversed()
.forEach{print($0)}

// B
sequence(first:0){$0+1}
.lazy
.map{$0*2}
.prefix(10)
.reversed()
.forEach{print($0)}
コメント1件

499
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/10 17:22:06  ID:PjuH0Yrh0.n(3)
Bでも型指定すればいいのかもしれんがどうやって指定すればいいのか分からない
こういうの普通に動くようになって欲しいね
他言語だと問題なく動くケースのような気がする

(->> (iterate inc 1)
(map #(* 2 %))
(take 5)
(reverse)
(map println))

500
デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)[sage]   投稿日:2017/01/10 17:34:25  ID:0L0fi+PIp.n(4)
関数型()にかぶれた可読性のないコードだと思った(コナミカン

関数型言語なら文化に合ってるんだろうけどSwiftで書くコードじゃねぇ
もっと読みやすい書き方あるだろとコンパイラ以前に、人間様がコードレビュー時に発狂したい

501
デフォルトの名無しさん (スッップ Sdff-+flj)[sage]   投稿日:2017/01/10 17:46:11  ID:IYumFm2zd.n
>494
よし、これならcを使った方が簡単に書ける例として文句無かろう

import Foundation

guard let fh = FileHandle(forReadingAtPath: "xxx"),
dup2(fh.fileDescriptor, 0) != -1 else {
fatalError("file/dup error")
}

while let line = readLine() {
print(line)
}
コメント1件

502
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/10 17:51:57  ID:aMk4PEuoa.n
先にprefixすればいいんやで

sequence(first:0){$0+1}
.prefix(20)
.map{$0*2}
.reversed()
.forEach{print($0)}
コメント1件

503
デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)[sage]   投稿日:2017/01/10 18:00:07  ID:tt6nQotl0.n(2)
>502
処理順を入れ替えられる例を出してすまん
map→filter→prefixのような場合は対応出来ない

504
デフォルトの名無しさん (ワッチョイ dfc9-f1yY)[sage]   投稿日:2017/01/10 18:59:28  ID:8RubTyxI0.n(2)
これが読みにくいとかさすがに化石すぎだろ

505
デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)[sage]   投稿日:2017/01/10 20:03:26  ID:FDJAHjJcp.n(3)
結局 reversed()が癌なんやな
makeIterator()かませばいけるけどな

sequence(first:0){$0+1}
.lazy
.map{$0*2}
.prefix(10)
.makeIterator()
.reversed()
.forEach{print($0)}

506
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/10 20:46:07  ID:PjuH0Yrh0.n(3)
>501
これいいね
エンコーディングの融通はきかないけど
Extensionにして気軽に使える

507
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/10 21:15:41  ID:PjuH0Yrh0.n(3)
どうでもいいけど改行コード云々はファイルフォーマットの話でデータ構造とは関係ないと思う
コメント1件

508
デフォルトの名無しさん (ワッチョイ 5f93-+flj)[sage]   投稿日:2017/01/10 22:31:43  ID:Vzu2YddV0.n
>507
ファイルフォーマットはデータ構造だとおもうが?

509
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/11 00:03:32  ID:wniphiOc0.n(2)
広義ではそうなのかもだけど
一般的にはデータ構造って言うともう少し論理的なもの(例えばArrayとかDictionaryとか)で
そのデータがシリアライズされたファイルフォーマット(ファイルの構造)とは別の話じゃない?

「じゃ、ここのデータ構造はJSONでお願い」って言われたら違和感あるよね

510
デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)[sage]   投稿日:2017/01/11 00:16:18  ID:5OhI584zp.n(3)
変数名に$が付くとPerlを思い出す化石マン
Rustみたく変数名に名前付けたい

>>ワッチョイ df3c-FtWv
もういいから、自分が否定されないように前提条件、論点をズラし続けるから
風が吹いたら桶屋が儲かるみたいなスレチになるんだよ
またSwiftに関係ない議論を吹っ掛けてんだろ
コメント1件

511
デフォルトの名無しさん (ワッチョイ df3c-FtWv)[sage]   投稿日:2017/01/11 00:32:18  ID:wniphiOc0.n(2)
>510
議論するつもりはないから
いい大人ならオブラートに包んでるって気づけよな

512
デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)[sage]   投稿日:2017/01/11 00:45:33  ID:6QBqeohxp.n(2)
SierのSE的には
データ設計で決めるのがデータ構造
ファイル設計で決めるのがファイルフォーマットだろ
プログラムはよくわからんから実装方法は各プログラマに任せるみたいな

513
デフォルトの名無しさん (ワッチョイ 1b17-+flj)[sage]   投稿日:2017/01/11 04:58:51  ID:jTTy0tPr0.n
ラトナーApple辞めるってよ
コメント1件

514
デフォルトの名無しさん (ワッチョイ 5fe5-+flj)[sage]   投稿日:2017/01/11 07:20:50  ID:V2u2R+4Y0.n
Lattnerまじかよ

515
デフォルトの名無しさん (スップ Sdff-oQtP)[sage]   投稿日:2017/01/11 08:02:31  ID:jHuXm8fPd.n
swift終了のお知らせ

516
デフォルトの名無しさん (オイコラミネオ MMff-2HrH)[]   投稿日:2017/01/11 09:04:44  ID:7pf6bg3nM.n
そしてオラクルが手に入れる

517
デフォルトの名無しさん (エムゾネ FFff-9Pqs)[sage]   投稿日:2017/01/11 09:09:16  ID:0/vimycYF.n
>513
Swiftがこの有り様だからな
つーかもともと言語としてのセンスがやはりなかった
Objective-Cから変える技術的逼迫性もなかった
まあオープンソースだし日曜プログラマは引き続きモダンな言語を楽しめばいいと思う

518
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/11 09:10:55  ID:TTvERX8La.n
はい、解散、解散
お前ら元気でな

519
デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)[sage]   投稿日:2017/01/11 09:13:22  ID:853Dbb3u0.n
メーリングリストには残る予定とのこと
https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-2017010...

520
デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)[sage]   投稿日:2017/01/11 09:36:15  ID:5OhI584zp.n(3)
ネタかとお前らマジだった
3でABI安定させてiOS組み込みランタイムにできてりゃまだこうはならなかったろうに

521
デフォルトの名無しさん (ササクッテロロ Sp3f-OZpM)[sage]   投稿日:2017/01/11 10:22:04  ID:6QBqeohxp.n(2)
Appleがテスラ買収したら面白いのに

522
デフォルトの名無しさん (ワッチョイ 5f32-l80d)[sage]   投稿日:2017/01/11 12:28:02  ID:3A3Blea/0.n
自動運転がホットな分野ってことが分かる出来事だな……
CarPlayとテスラの自動運転がガッツリ融合みたいな感じになったりするのかね

523
デフォルトの名無しさん (ワッチョイ dfc9-f1yY)[sage]   投稿日:2017/01/11 12:39:27  ID:RGh2RgBv0.n
ラトナーがテスラでSwift製のTensorFlow級機械学習ライブラリのプロジェクト立ち上げるフラグ?

524
デフォルトの名無しさん (ワッチョイ 2b91-P21V)[sage]   投稿日:2017/01/11 12:46:25  ID:hbAKDMBg0.n
それでSwift Package Managerから使える3rd party libraryが増えるなら歓迎したいな
コアライブラリ(Foundation)が貧弱でも、外部ライブラリが充実してるならreadlineみたいな問題も起きぬ
go, rust, nodejsなんかは外部ライブラリもパッケージマネージャーも枯れてるのに
Swiftは未だにパッケージマネージャーが実用品質まで実装されていないのはホントくそだぜ

525
デフォルトの名無しさん (ササクッテロロ Sp3f-+flj)[sage]   投稿日:2017/01/11 13:25:01  ID:El817HeFp.n
今後もバリバリコード書くのか?テスラの自動運転ソフトの副社長ってもう管理職じゃないの
いずれにしてもSwiftにはさじを投げた?

526
デフォルトの名無しさん (オイコラミネオ MMff-+flj)[sage]   投稿日:2017/01/11 17:08:20  ID:h4pP9InkM.n
ああ、LattnerがいないSwiftの進化なんて…

オープンコミュニティといえ、元締めは彼だろ

527
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/11 17:33:41  ID:NWO+SBAfa.n
かつてのボーランドからマイクロソフトへチーフアーキテクトが引き抜かれて、衰退していったDelphiと同じ運命を辿るのか

528
デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)[sage]   投稿日:2017/01/11 17:53:48  ID:5OhI584zp.n(3)
次はAppleが
企業がリーディングする必要がないほどに成長した
Swiftはコミュニティベースの開発に移行する
とか言って切り離すフェーズだなw

その時は流石にIBMは泣いていいと思う
コメント1件

529
デフォルトの名無しさん (ワッチョイ 6f13-q3aP)[]   投稿日:2017/01/11 19:07:19  ID:AM+tjFEn0.n
gasgas
歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00  ニコニコ生放送
lv286846512

530
デフォルトの名無しさん (ワッチョイ 6f5b-9Pqs)[sage]   投稿日:2017/01/11 19:48:30  ID:ql+say3+0.n
>528
オープンソース化はこの伏線だったのかな
というかすでにコミュニティベースの開発に移行してるんじゃなかったっけ?

531
デフォルトの名無しさん (スッップ Sdff-+flj)[sage]   投稿日:2017/01/11 20:20:46  ID:vol/OZGBd.n
これはSwiftが進化するフラグなのか
Swiftが廃れるフラグなのか



遅延評価だな

532
デフォルトの名無しさん (アウアウウー Sa3f-yz8t)[sage]   投稿日:2017/01/11 20:53:57  ID:jVlnEIwOa.n
うまいこと言ったつもりなの?

533
デフォルトの名無しさん (ワッチョイ 5fc9-tEgc)[sage]   投稿日:2017/01/11 22:21:38  ID:H1aLMscd0.n
Swiftがオープンソース化した本当の理由は退職への布石だったか。
業務中に開発した物は権利も含めて置いてけって言われるからな。

534
デフォルトの名無しさん (ワッチョイ ab8f-S2pU)[sage]   投稿日:2017/01/11 22:22:31  ID:6a0oW3vG0.n
ラトナーグーグル行かないかな。
そしてandroidで、swift使えるようにしてほしい
コメント2件

535
デフォルトの名無しさん (スッップ Sdd2-GRi3)[sage]   投稿日:2017/01/12 02:42:00  ID:aguNSWiGd.n
Swift愛が強いやついるよな
何がそんなにいいのかわからんけど

536
デフォルトの名無しさん (ワッチョイ bbba-f8hU)[sage]   投稿日:2017/01/12 04:11:52  ID:NO1D7SqU0.n
仕様が固まったらswift勉強しようと思ってたのに
勉強する前に終わりが来てしまった…

もう駄目なん?

537
デフォルトの名無しさん (ワッチョイ be5b-GRi3)[sage]   投稿日:2017/01/12 04:53:25  ID:HEZQC1GR0.n
結局AppleがSwiftゴリ推してたからSwiftやるかってなってただけで、別に言語自体に魅力があるかっつうと微妙な言語だからなぁ

538
デフォルトの名無しさん (ワッチョイ d315-+/No)[sage]   投稿日:2017/01/12 10:11:11  ID:hrKw0WqE0.n(2)
ゴリ推し君、久しぶりだな
お前の天下だぞ、やったなw

>534
それはもう実現されたろ
誰もありがたがらないから取り上げられないだけで

539
デフォルトの名無しさん (ワッチョイ 9232-ZP+f)[sage]   投稿日:2017/01/12 11:03:11  ID:HIZRXgmf0.n
>534
JavaにAOT入ってくるし余りSwiftの優位性がないんじゃないかなぁ
GoogleとしてはGolangの方を推すだろうし
コメント3件

540
デフォルトの名無しさん (スップ Sdf2-vkEW)[sage]   投稿日:2017/01/12 12:16:49  ID:fxxdnJ+zd.n(2)
>539
優位性はoracleに訴訟起こされないことなので
googleだからとgolang推すとは限らない

541
デフォルトの名無しさん (スプッッ Sdf2-MRNU)[]   投稿日:2017/01/12 12:20:15  ID:ZbEfheT4d.n
正直、普通にpythonの方が良かったな

542
デフォルトの名無しさん (ササクッテロレ Sp37-rG+u)[sage]   投稿日:2017/01/12 13:18:05  ID:bePo0qAjp.n
>539
AOTはとっくに入ってるけど、それでも頭打ちになって、
AOT+JITハイブリッドに進んでいる

543
デフォルトの名無しさん (JP 0Hf2-dHfL)[sage]   投稿日:2017/01/12 15:07:06  ID:UlDpgnikH.n
どうなると思う?

544
デフォルトの名無しさん (ワッチョイ f38f-JEwG)[sage]   投稿日:2017/01/12 19:27:11  ID:MO5zZFfW0.n(2)
>539
golangはエコシステムが素敵なだけで
better c感があるからなぁ。
正直ジェネリクスが入るまではあんまりアンドロイド向けにはならない気も。だってjavaみたいな抽象化ブログラミング苦手っしょ

545
デフォルトの名無しさん (ワッチョイ d315-+/No)[sage]   投稿日:2017/01/12 19:51:13  ID:hrKw0WqE0.n(2)
Javaみたいな抽象化プログラミング(OOP至上主義プログラミング)がクソって風潮で
GoやRust(あと一応Swiftも)の言語仕様が切られてるんだけどな
ジェネリクスはどうでもいいわ、あれば使うけど、なくても死ぬわけでもなし
コメント1件

546
デフォルトの名無しさん (スップ Sdf2-vkEW)[sage]   投稿日:2017/01/12 20:03:43  ID:fxxdnJ+zd.n(2)
OPP最高

547
デフォルトの名無しさん (ワッチョイ f38f-JEwG)[sage]   投稿日:2017/01/12 20:04:28  ID:MO5zZFfW0.n(2)
>545
抽象化プログラミングの否定ではなく
関数型プログラミングへの注力ってだけでしょ。抽象化は必要な技術であることには変わらない。

RxSwiftとか触ってると抽象化が得意な言語上で作られたFrameworkの便利さには感動する。

んで、golangはそういうのが苦手で、
どうしてるかと言うと、コードジェネレータを作ったりしてるw

正直そういう部分がアンバランスな感じなので、はよジェネリクスくれってなってる。

548
デフォルトの名無しさん (ササクッテロラ Sp37-gjPF)[sage]   投稿日:2017/01/12 20:21:07  ID:EuCQnJSXp.n
zero cost abstractionを心がけたからじゃね?
C++テンプレート含めて動作性能求めてコードジェネレータは当然の結果
JavaやSwiftはそのコストなんて気にしてないけども

549
デフォルトの名無しさん (JP 0Hf2-dHfL)[sage]   投稿日:2017/01/13 10:56:53  ID:A7lO7PxRH.n
Swift無くなるの?

550
デフォルトの名無しさん (スッップ Sdd2-GRi3)[sage]   投稿日:2017/01/13 10:59:55  ID:knpjVG01d.n
Appleの中にSwiftに本気の人がいなくなったってだけでしょ

551
デフォルトの名無しさん (スプッッ Sdd2-vkEW)[sage]   投稿日:2017/01/13 11:01:08  ID:zzZzBy0Od.n
腐ったリンゴから解放されて世界に羽ばたくよ

552
デフォルトの名無しさん (オイコラミネオ MMce-kkJw)[sage]   投稿日:2017/01/13 16:06:30  ID:qq8NhLIPM.n
詳解Swift第3版読み終わったらけど、delegateの説明が一切なかった。
delegateとprotocolの違いって何?
コメント2件

553
デフォルトの名無しさん (ワッチョイ 573c-dHfL)[sage]   投稿日:2017/01/13 17:55:00  ID:le1wMpNu0.n
大まかに言えばコールバック用のprotocolを実装したインスタンスをdelegateと呼んでるだけ
技法や用語の類なので言語仕様と直接の関係は無いよ
コメント1件

554
デフォルトの名無しさん (ワッチョイ 92e5-kkJw)[sage]   投稿日:2017/01/13 18:32:25  ID:cenlIzEl0.n
>553
ありがとう😊

555
デフォルトの名無しさん (ワッチョイ d35b-lDPz)[]   投稿日:2017/01/13 19:41:22  ID:6sCHka4P0.n
>552
delegateの話は無しなのかぁ。
まあ、UIKit、AppKitの話だからなぁ。

556
デフォルトの名無しさん (ワッチョイ be5b-GRi3)[sage]   投稿日:2017/01/14 02:00:38  ID:zbDc0ypE0.n
AppleがSwiftを切っても使い続けたいと思うならまともな言語といえるのだろう

557
デフォルトの名無しさん (ブーイモ MM8b-0NVw)[]   投稿日:2017/01/17 12:02:14  ID:cEkG7JbvM.n(2)
テスラのファームウェアがSwift製になるのか
ますます日本人のトヨタ離れが加速するな

558
デフォルトの名無しさん (JP 0Hf2-dHfL)[sage]   投稿日:2017/01/17 15:24:26  ID:BOj3HsKUH.n
で、Swift無くなるの?

559
デフォルトの名無しさん (ササクッテロラ Sp37-gjPF)[sage]   投稿日:2017/01/17 16:31:46  ID:eAAsiKtXp.n
swiftってファームウェアが書けるほど低レイヤーで動けるのかいな
LinuxないしmacOS, iOS上のソフトウェアに留まりそう
まぁそれでもテスラ上の開発がswiftになるならこれほど胸熱なニュースはswift史上にないな(そうなるとは思ってない

560
デフォルトの名無しさん (ワッチョイ 0353-0NVw)[]   投稿日:2017/01/17 17:18:09  ID:KCosYzOz0.n(5)
いや、CとSwiftの併用でいくと思う
というかビットバイトレベルの操作はCが一等書きやすいのは今後も変わらん
Swift登場後はポストCはどの言語かという議論はナンセンスだと思うわ
コメント1件

561
デフォルトの名無しさん (ワッチョイ 0353-0NVw)[sage]   投稿日:2017/01/17 17:47:17  ID:KCosYzOz0.n(5)
実のところSwiftに熱くなれるのはiOSシェア50%強の日本だけ
日本にいると気づきにくいが他の国ではそもそもSwiftを走らせる機会に乏しいのだ
サーバーサイドでもGo、node.jsやJavaを差し置いてSwiftを採用するメリットは現状乏しい
ラトナーは日本人のオタクばっかりが飛びついてバカッターであることないこと吹き回ってる現状を前に
未来への展望が見えなくなってしまったのかもしれない

もしかしたらSwiftが流行るかどうかは日本人次第と言えるかもしれない
Swiftはラトナーから日本人への置き土産だったのだ
コメント1件

562
デフォルトの名無しさん (ワッチョイ 0353-0NVw)[]   投稿日:2017/01/17 17:53:53  ID:KCosYzOz0.n(5)
バカッターで本質的でも建設的でもないことで熱くなっている日本人を前にして
ラトナー「やべえ一番面倒なお客さんに好かれちまった・・・この言語もうだめだわ」
となったに違いない。俺ラトナーの気持ちよくわかるわ
コメント1件

563
デフォルトの名無しさん (ワッチョイ d3c9-pk1x)[]   投稿日:2017/01/17 18:00:12  ID:1PLMnPDO0.n
>561
飽きるのも速いからな

564
デフォルトの名無しさん (ワッチョイ f34e-TjL7)[sage]   投稿日:2017/01/17 18:01:11  ID:1+zZwnvK0.n
>562
一瞬、「置き土産」をポジティブに捉えてるのかと思ったよ
コメント1件

565
デフォルトの名無しさん (ワッチョイ 0353-0NVw)[sage]   投稿日:2017/01/17 18:22:17  ID:KCosYzOz0.n(5)
>564
いやまあ適当におもしろおかしく書いただけなんで俺の意思は上のレスのどこにもないよ

566
デフォルトの名無しさん (スッップ Sdd2-0Plu)[]   投稿日:2017/01/17 18:57:54  ID:N7dBiTg5d.n
>560
ビット、バイトの操作はアセンブリ言語の方が楽。
コメント1件

567
デフォルトの名無しさん (ワッチョイ 0353-0NVw)[]   投稿日:2017/01/17 19:02:14  ID:KCosYzOz0.n(5)
>566
楽が何を指してるのかわからんがアセンブリでARMからx86まで対応したコード書く気ですか

568
デフォルトの名無しさん (ブーイモ MM8b-0NVw)[sage]   投稿日:2017/01/17 19:16:55  ID:cEkG7JbvM.n(2)
IBMは動揺しただろうか
軽く社運賭けてそうだったもんな

569
デフォルトの名無しさん (ワッチョイ 72c9-lDPz)[sage]   投稿日:2017/01/17 19:45:51  ID:94EBDj3G0.n(2)
そもそも発表後はラトナーそんなにコード書いてない
メーリスでも発言が頻繁だったわけでもない
Swiftはとうにラトナーの手を離れて歩きだしてる

570
デフォルトの名無しさん (ワッチョイ f38f-JEwG)[sage]   投稿日:2017/01/17 20:39:45  ID:L9ZJiwd40.n
rustの真似してARCやめようとしてるのもテスラで動かすための布石だったりして

571
デフォルトの名無しさん (ワッチョイ 12cf-kkJw)[sage]   投稿日:2017/01/17 21:00:56  ID:cY3pxmYi0.n
ていうか、単にcocoa系APIは専用の呼び出しサポートして終わり、で良かった気がするんだけどねぇ。
それなら、よそのAPI取り込み選択肢があったのにねぇ。

572
デフォルトの名無しさん (スプッッ Sdf2-k0Ff)[sage]   投稿日:2017/01/17 21:29:33  ID:diZtCuN9d.n
流れぶったぎってすまないが、演算子で???とか!!ってあったっけ?サーチエンジンで検索できないんだよね
コメント1件

573
デフォルトの名無しさん (ワッチョイ 72c9-lDPz)[sage]   投稿日:2017/01/17 22:46:01  ID:94EBDj3G0.n(2)
無いっしょ

574
デフォルトの名無しさん (スプッッ Sdf2-k0Ff)[sage]   投稿日:2017/01/18 11:32:43  ID:QZC6aztod.n
どっかで見た気がしてた、ありがとう

575
デフォルトの名無しさん (ワッチョイ 573c-dHfL)[sage]   投稿日:2017/01/18 14:04:31  ID:mYaS/Vd70.n
演算子では無いけど書けるかどうかなら一応可能
実用コードで見掛けることは無いだろうけど

let a = Optional(Optional(Optional(0)))
let aa = a???.hashValue

let b = Optional(Optional(0))
let bb = b!!

576
デフォルトの名無しさん (ササクッテロリ Sp37-gjPF)[sage]   投稿日:2017/01/18 18:04:04  ID:I9cdn/V3p.n(2)
rustの真似事は無理じゃないかなぁ
rustスレに遊びに来た荒し、数時間で挫折したぞ
borrow checkerはARCより死ぬほど扱いが難しい
その割りにARCと実動作に大差ないからメリットが少ないって冷静に判断されそう
コメント1件

577
デフォルトの名無しさん (ワッチョイ d35b-lDPz)[]   投稿日:2017/01/18 21:45:54  ID:LJhKuLVS0.n
>572
Swift Standard Library -> Swift Standard Library Operators

578
デフォルトの名無しさん (ワッチョイ f642-dHfL)[sage]   投稿日:2017/01/18 21:46:51  ID:fhQVy3CG0.n
>576
それは言語として威張れるところか?w
コメント1件

579
デフォルトの名無しさん (ワッチョイ f34e-TjL7)[sage]   投稿日:2017/01/18 21:53:24  ID:B+OX1k7v0.n
borrowチラっと見たけどややこしいな
ownershipで考えるからややこしいんだろ
reference countのARCのがシンプル

580
デフォルトの名無しさん (ササクッテロリ Sp37-gjPF)[sage]   投稿日:2017/01/18 22:18:00  ID:I9cdn/V3p.n(2)
>578
一応、「nilsafeだから安全(笑)」とswiftを馬鹿に出来るくらい不正ポインタアクセスに対して安全だから、、、
その代償のコーディング難易度がくっそ高いから日曜プログラマがちょっと遊びでには向かない
まぁ、業務にもその難易度のせいで上流行程へ採用提案しづらいんだけど

要は、日曜プログラマに愛されて、アポー信者の上流行程を騙しやすいswift最強ってこった

581
デフォルトの名無しさん (ワッチョイ 72c9-lDPz)[sage]   投稿日:2017/01/18 22:56:42  ID:g+H+g1Pr0.n
RustでもOption使うだろ

582
デフォルトの名無しさん (ワッチョイ c33c-3qL8)[sage]   投稿日:2017/01/19 07:59:17  ID:FKxmZ7fp0.n
Swiftのメモリ管理 ≒ C++のshared_ptr/weak_ptr
Rustのメモリ管理 ≒ C++のauto_ptr(暗黙move, unique_ptrの先代)

Rustのborrowingはauto_ptr::getとほぼ同じ
ただし解放されたものを参照しないようlifetimeの手厚いサポートがある

ARCの方がコーディングは楽だろうけど
Rust方式は渡したものを保持して遅延使用するのか
関数から戻った時点で使い終わってるのかを
言語レベルで扱えたりするから一長一短ではある

まぁSwiftにもクロージャに関しては@escapingがあるけど
コメント1件

583
デフォルトの名無しさん (ワッチョイ ffc9-mu6I)[sage]   投稿日:2017/01/19 20:32:11  ID:VasCiZ4n0.n
Swift/ObjCのARCはshared_ptr/weak_ptrと同じ
ただ、SwiftはKotlinのoptional, Rustのif letを言語仕様でパクってあってコーディングが楽

この部分だけObjCにバックポートしたら便利なんじゃね?とふと思った
__nullable, __nonnullとか微妙なキーワードによるバックポートは正直使いづらい

584
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/19 22:19:36  ID:w+bE5wHza.n
そうですね

585
デフォルトの名無しさん (オイコラミネオ MMff-Taza)[sage]   投稿日:2017/01/20 15:40:14  ID:ZOjl9uXaM.n
型推論をプログラミング知識が乏しい人に説明するなら、どんな隠喩がいいと思う?
コメント1件

586
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/20 16:00:12  ID:is3Fha3pa.n(2)
アヒルみたいな顔してお尻フリフリ歩いてグワッ、グワッて鳴く鳥がいたら、もうそれアヒルってことでいいよね
って感じでいいんじゃね

587
デフォルトの名無しさん (JP 0H87-Taza)[sage]   投稿日:2017/01/20 16:35:51  ID:6bMM3T6GH.n
うわっ!これガチョウだ!!


588
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/20 17:08:41  ID:is3Fha3pa.n(2)
などと、コンパイルエラーが出たら明示的に宣言してね
ということで

589
デフォルトの名無しさん (スップ Sd1f-ddg/)[]   投稿日:2017/01/20 18:43:31  ID:2Wi9HN+wd.n
>585
男か女か解らない人がいるんだけれど、喉仏が出ているから、男って事で。


みたいな?

590
デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)[sage]   投稿日:2017/01/20 19:05:32  ID:4nNA4c16p.n
「おまじない」が古くから由緒ある陰語

実際問題、プログラミング知識が乏しいと
型推論と型宣言と動的型を区別できないから説明省いて良いと思う

591
デフォルトの名無しさん (ワッチョイ 738f-ILNu)[sage]   投稿日:2017/01/20 22:51:19  ID:/kNqqxub0.n
いやいやそれくらいコンパイラ側が自動で型を推測してよってツッコミを入れていたところが解決した

592
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/20 23:13:59  ID:sVl+H8Xfa.n(2)
それは良かった

593
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/20 23:59:07  ID:sVl+H8Xfa.n(2)
a = b = c = 0
って感じで同じ型の変数に値を一気に代入できないのは不便だよね

594
デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)[sage]   投稿日:2017/01/21 01:50:38  ID:d82h9KNNp.n
そうですね

595
デフォルトの名無しさん (ワッチョイ 6f5b-JNK/)[sage]   投稿日:2017/01/21 01:51:05  ID:W/zpHkC+0.n
だってSwiftだもの

596
デフォルトの名無しさん (ササクッテロロ Sp87-UhX6)[sage]   投稿日:2017/01/21 02:08:12  ID:wL4zqwoRp.n
みつを来てんね

597
デフォルトの名無しさん (オッペケ Sr87-+PXi)[]   投稿日:2017/01/21 19:37:18  ID:aueqPNmbr.n
>582
つまりc++が最強?

598
デフォルトの名無しさん (ワッチョイ bf8c-GzBV)[]   投稿日:2017/01/23 21:45:03  ID:RV5yVqC70.n(5)
初見なんだけどココ、NewB的な質問もOkなトコロ?
コメント1件

599
デフォルトの名無しさん (ワッチョイ bf8c-GzBV)[sage]   投稿日:2017/01/23 21:59:18  ID:RV5yVqC70.n(5)
>598だけど返事待つのもあれだし、質問するわ。ちょっと説明しづらいんだけど
例えばビューのカスタムクラス作って、そこのポップアップボタンとかのアイテムにセレクターつけるとするじゃん。
そんでそのクラスのインスタンスをペアレントのビューに複数おいてどれかのアイテムクリックすると、
別のインスタンスのセレクタが呼ばれちゃわね?二つ目のインスタンスのボタン押したのに、一つ目に反映されたりする。

このカスタムクラス複数インスタンス化においてのNotificationとか、selectorとかで困ってんの、どうやって回避する?
コメント3件

600
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/23 22:05:37  ID:WrhQGC6sa.n(2)
ちょっと言ってる意味がわからないけど
俺のエスパー能力が正確なら、Outlet Collectionでググるといいかもしれない

601
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/23 22:06:59  ID:WrhQGC6sa.n(2)
いやなんか違うような気がするな
やっぱエスパーさんの登場を待とう

602
デフォルトの名無しさん (ワッチョイ f35b-jh1Y)[]   投稿日:2017/01/23 22:11:15  ID:Llx+8S3H0.n
>599
俺も何いってるのか?
さっぱりだわぁ

603
デフォルトの名無しさん (ワッチョイ bf8c-GzBV)[sage]   投稿日:2017/01/23 22:26:13  ID:RV5yVqC70.n(5)
すげーリプはえーやばい。
ググってくるわーthx

604
デフォルトの名無しさん (ワッチョイ 33a1-U6eW)[sage]   投稿日:2017/01/23 22:26:58  ID:sPzCf4bI0.n
Notificationの、selecterとnameちゃんと使い分けてる?
コメント2件

605
デフォルトの名無しさん (ワッチョイ c33c-3qL8)[sage]   投稿日:2017/01/23 22:29:39  ID:Ws+iSkNs0.n
>599
UIViewControllerでなくUIViewを継承
コメント1件

606
デフォルトの名無しさん (ワッチョイ bf8c-GzBV)[sage]   投稿日:2017/01/23 22:35:00  ID:RV5yVqC70.n(5)
>604
NSMenuItemからいくと、postじゃなくてaction限定になってるんじゃないかな?限定的でスマソンだけど

>605
OSXでNSViewを継承

607
デフォルトの名無しさん (ワッチョイ bf8c-GzBV)[]   投稿日:2017/01/23 22:44:47  ID:RV5yVqC70.n(5)
>604
あとNameもインスタンスだと同じになって別のインスタンスが呼ばれちゃう。
でもこれは登録する時にNameにインデックスとか何らかIDつけると回避できそうな気がするけど、メニューアイテムだと

menu?.addItem(NSMenuItem.init(title: name , action: #selector(selected(_:)), keyEquivalent: ""))

みたいな感じで付け入る隙がないんだ

608
デフォルトの名無しさん (ワッチョイ 6f5b-JNK/)[sage]   投稿日:2017/01/23 22:54:40  ID:wkYluZkM0.n
Swiftの字面の汚さは慣れないなやっぱり

609
デフォルトの名無しさん (ワッチョイ c33c-ddg/)[]   投稿日:2017/01/23 23:00:43  ID:d7Gq4/N70.n
>599
「ポップアップボタンとか」の「とか」は、「ポップアップボタン」以外の何?

そもそもAppleは、ポップアップボタンなんてものは提供していないがな。
それにiOSでは、クリックなんかはできない。

HumanInterfaceGuidelinesを読み直して出直した方が良いな。

610
デフォルトの名無しさん (ワッチョイ 9339-u5as)[]   投稿日:2017/01/24 00:55:51  ID:exkLo0yv0.n(4)
文字とかって Character と CChar とあるみたいだけど、
こういうことしたい時はどうすればいいんでしょう

Cで

for(i = 'a'; i <= 'z'; i++){
putchar(i & 0x5f);
}
putchar('\n')

みたいなのを swiftで書く場合って…

for i in ???...??? {
もうわからん
}
コメント1件

611
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/24 01:24:22  ID:6XEtipUUa.n(4)
なんでそんなことしたいのか知らんけど
くんな感じ?

for ch in "a".utf8.first!..<"z".utf8.first! {
print(Character(UnicodeScalar(ch & 0x5f)))
}

もっとスマートな書き方があるかも知らん
コメント3件

612
デフォルトの名無しさん (ワッチョイ bf8c-GzBV)[sage]   投稿日:2017/01/24 01:33:52  ID:7WmLdbGx0.n(3)
>610

let str = "abcdefghijklmnopqrstuvwxyz"

for c in str.characters{
print(c)
}

がんばれ
コメント3件

613
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/24 01:43:19  ID:6XEtipUUa.n(4)
>612
それ文字列の中を順に表示してるだけじゃん

614
デフォルトの名無しさん (ワッチョイ bf8c-GzBV)[sage]   投稿日:2017/01/24 01:56:29  ID:7WmLdbGx0.n(3)
>612
これ何で大文字になんの?
コメント1件

615
デフォルトの名無しさん (ワッチョイ bf8c-GzBV)[sage]   投稿日:2017/01/24 01:57:25  ID:7WmLdbGx0.n(3)
>614
>611の間違い

616
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/24 02:07:07  ID:6XEtipUUa.n(4)
それはAsciiコードがそうなってるから...
コメント1件

617
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/24 02:10:03  ID:6XEtipUUa.n(4)
大文字にするだけならこっちの方がいいか

for val in UnicodeScalar("a").value...UnicodeScalar("z").value
{
print(String(format: "%c", val).uppercased())
}
コメント1件

618
デフォルトの名無しさん (スッップ Sd1f-JNK/)[sage]   投稿日:2017/01/24 02:22:36  ID:kY6N+f51d.n
>611
クッソ読みにくいな
さすがSwift()だわ

619
デフォルトの名無しさん (ワッチョイ c33c-ddg/)[]   投稿日:2017/01/24 05:59:43  ID:odFyaWZN0.n
>616
何だ?Asciiコードって。

SUICAカード
電球の球
頭痛が痛い
地震が揺れた

620
デフォルトの名無しさん (ワッチョイ 9339-u5as)[]   投稿日:2017/01/24 07:47:42  ID:exkLo0yv0.n(4)
ありがとう

>611
ワイの求めていたものに近い

見てたら意味的には
>617のがよさげ

別に小文字を大文字にしたいわけじゃなくて
文字コードを数値で扱いたく
かつ数値を文字にしたかった

例えば大量のテストデータを自動生成するとか
発想が Cなので、そういうやり方しか思いつかないんだけど
手段にたどりつけないで試行錯誤してます
コメント1件


621
デフォルトの名無しさん (ワッチョイ 9339-u5as)[]   投稿日:2017/01/24 07:50:49  ID:exkLo0yv0.n(4)
>612
それは思いついたけどスマートじゃないと思った

例えばその "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' って書けないんだよ
それぐらいやらせてくれよ

622
デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)[sage]   投稿日:2017/01/24 10:19:40  ID:PbjuVM+3p.n(2)
aからzが子文字のみの昇順で並ぶ保証がないから
万が一、将来AaBbC...yZzって並ぶ文字コードが世界標準になったら
'a'...'z'が書ける言語仕様にしてたらどうすればいいか分かんないじゃん

これは極端な例だけど、要はそういう不意の事象に耐える意識高い言語仕様にswiftはなってる

623
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/24 10:32:22  ID:8WMehL2Va.n(2)
いやもう文字コード決まってんじゃんw
今更文字コード変えられたら、どっちみちコンパイルし直しになるし
どんだけ既存のプログラムに影響出るんだよw

624
デフォルトの名無しさん (ワッチョイ ff4c-Taza)[sage]   投稿日:2017/01/24 10:52:16  ID:bcJOEpSP0.n
ASCII知らないのか

625
デフォルトの名無しさん (ワッチョイ c33c-3qL8)[sage]   投稿日:2017/01/24 11:01:02  ID:HBr+KooL0.n
>620
>文字コードを数値で扱いたく かつ数値を文字にしたかった
一応部品化すれば本処理部分は多少は見やすく・・・

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))
}
コメント1件

626
デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)[sage]   投稿日:2017/01/24 11:16:48  ID:PbjuVM+3p.n(2)
ソースファイルの文字コードとランタイム内の文字コードは別に考えろよ
ソースファイルの話ならjavac -encodingみたいに対応すればいい
ランタイム内はそれが変動出来るようにString.utf8やUnicodeScalarがある

ソースファイルの文字コードに影響されるってC言語かよw

627
デフォルトの名無しさん (ワッチョイ 335b-wAZW)[sage]   投稿日:2017/01/24 12:08:53  ID:gy8Md2CU0.n
文字列は魔境

628
デフォルトの名無しさん (アウアウオー Sadf-WaXM)[sage]   投稿日:2017/01/24 12:14:47  ID:8WMehL2Va.n(2)
ソースファイルにしろランタイムにしろいきなり文字コード体系が変わってもらっちゃ
どんな言語だって困るだろ
文字コードの大小に依存してるコードなんてごまんとあるぞ

629
デフォルトの名無しさん (ワッチョイ c33c-M+yL)[]   投稿日:2017/01/24 17:34:40  ID:+WwPKdrl0.n
日本語が不自由だとか勘弁してくれよ。
https://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

630
デフォルトの名無しさん (ワッチョイ 9339-u5as)[]   投稿日:2017/01/24 19:57:41  ID:exkLo0yv0.n(4)
>625
イイね

ただ大文字化したいというよりは
こういった基本的な処理を身に着けたい

今まで Cや Perlでやってたことが
swiftでもできたらなぁって感じ
できないと俺の寿命がストレスでマッハ

631
デフォルトの名無しさん (スッップ Sd1f-JNK/)[sage]   投稿日:2017/01/24 21:29:28  ID:6Rgy6vgTd.n
最近の言語だとPythonは読みやすくて覚えやすくていい文法してると思う

632
デフォルトの名無しさん (アウアウウー Sa67-WaXM)[sage]   投稿日:2017/01/24 21:47:34  ID:KTC1YGyNa.n
Pythonが最近の言語なわけないだろ

633
デフォルトの名無しさん (ワッチョイ a3d4-hfv1)[sage]   投稿日:2017/01/24 22:31:37  ID:GRF78Bhf0.n(2)
Pythonは3で死んだ

634
デフォルトの名無しさん (ワッチョイ cf42-3qL8)[sage]   投稿日:2017/01/24 22:35:46  ID:L2GKKZjf0.n
死んだの?

635
デフォルトの名無しさん (ワッチョイ a3d4-hfv1)[sage]   投稿日:2017/01/24 22:50:13  ID:GRF78Bhf0.n(2)
俺が死んだ

636
デフォルトの名無しさん (ワッチョイ ffc9-NwiU)[sage]   投稿日:2017/01/24 23:30:23  ID:Khh2743H0.n
UnicodeScalarを拡張してしまえばいいのでは

extension 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)!)
}
コメント1件

637
デフォルトの名無しさん (アウアウウー Sa67-WaXM)[sage]   投稿日:2017/01/25 08:50:03  ID:WD3nSRWWa.n
うっわめんどくせ
もうC言語でいいわ
コメント1件

638
デフォルトの名無しさん (エムゾネ FF1f-JNK/)[sage]   投稿日:2017/01/25 09:06:42  ID:Xv7wslg5F.n
>637
基本読みにくいんだよなSwift

639
デフォルトの名無しさん (ワッチョイ c33c-3qL8)[sage]   投稿日:2017/01/25 10:23:43  ID:2+5m68360.n(2)
>636
結局リテラルがアレなんだよな
型指定しないとStringになるから俺はStrideable断念して引数使ったけど

シングルクォートのリテラルを言語仕様に入れなかった理由がよく分からない

640
デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)[sage]   投稿日:2017/01/25 10:39:46  ID:+ZiK5CtYp.n
シングルクォート = UnicodeScalar で言語仕様切るとUnicodeに引っ張られるからでは
古い言語にならってASCIIを想像する人もいれば、今時ならUTF8だと想像する人もいるだろうし、フレームワークに合わせてUnicodeと言う人もいる
落とし所のない不毛な議論が目に見えるから、検討したけど削除した仕様な気がする

641
デフォルトの名無しさん (ワッチョイ c33c-3qL8)[sage]   投稿日:2017/01/25 11:04:36  ID:2+5m68360.n(2)
でもStringとUnicodeScalarの間にCharacterが入ってるあたりは
既にUnicodeに盛大に引っ張られてる気もする

let c = Character("あ" + "゚")

まぁ何らかの検討はあったんだろうけど・・・
コメント1件

642
デフォルトの名無しさん (ワッチョイ 734c-JNK/)[sage]   投稿日:2017/01/25 20:41:52  ID:RfIl6u1t0.n
Swiftって確かに字数は少ないかもしれないが読みやすいかっていうと…
コメント1件

643
デフォルトの名無しさん (アウアウウー Sa67-WaXM)[sage]   投稿日:2017/01/25 20:56:49  ID:xQi6cekNa.n
じゃあ読みやすい言語ってどれだよ

644
デフォルトの名無しさん (スプッッ Sd1f-CBoF)[sage]   投稿日:2017/01/25 21:09:38  ID:d9MKwq+md.n
cobol

645
デフォルトの名無しさん (ワッチョイ 1342-3qL8)[sage]   投稿日:2017/01/25 22:58:32  ID:CYUx5EoW0.n(3)
Java
Java
Java
Java
Java

646
デフォルトの名無しさん (ワッチョイ 1342-3qL8)[sage]   投稿日:2017/01/25 23:07:52  ID:CYUx5EoW0.n(3)
とおもったけどC#

647
デフォルトの名無しさん (ワッチョイ 1342-3qL8)[sage]   投稿日:2017/01/25 23:12:20  ID:CYUx5EoW0.n(3)
>642
Swift字数おおくないか
ライブラリの名前がいちいち長ったらしいし
関数に引数の名前2つがデフォとかげんなりするし
try!に至ってはもう
コメント1件

648
デフォルトの名無しさん (ワッチョイ 0f4c-2P18)[sage]   投稿日:2017/01/26 01:40:32  ID:9A8WN5h/0.n
>647
そ、そうね…
落ち着いて考えるとCで簡潔に書けることも長ったらしいし、それでいて読みにくい
Swiftって一体どこがいいんだろう…

649
デフォルトの名無しさん (ワッチョイ 2b10-Ve17)[sage]   投稿日:2017/01/26 02:37:16  ID:dAEo4WV40.n
引数名がない言語の方が見た目はシンプルだけど、特にtrue/falseだけのパラメータとかだと何してるかわかんないときがあって今となってはイラッとするな。
obj.doSomething(true, false, true)みたいなやつ
標準APIだとそういうのは良くないってわかってるのかあんまりないけど、誰かが適当に作ったライブラリだとそんなのがよく出てくる気がする

650
デフォルトの名無しさん (スッップ Sdca-2P18)[sage]   投稿日:2017/01/26 03:07:53  ID:26kSGCXVd.n
Swiftのラベル機能、アンダーバーってなんだよ
クソ過ぎやしないか?
Objective-Cのままでいいわまじで
コメント2件

651
デフォルトの名無しさん (ワッチョイ 833c-AZYz)[sage]   投稿日:2017/01/26 07:35:18  ID:8RDF259k0.n(2)
トレーリングクロージャは良い点
それとクロージャ構文にプレフィックスが不要なところも
代わりにスコープブロックにdoが必要だけど2文字は許容範囲内

652
デフォルトの名無しさん (ワッチョイ 7e0d-Spol)[sage]   投稿日:2017/01/26 08:13:25  ID:O9H7zUJg0.n
>641
Stringのメンバを見るとCharacterとUnicodeScalarは同列っぽいよ
どちらもUnicodeを内部エンコードに扱ってるからそれらはUnicode依存のフレームワークの様子だけど
同じ層にUTF8, UTF16もいるからいつかCharacterUTF8, UTF8Scalarみたいな構造体もできるかもなw
コメント1件

653
デフォルトの名無しさん (ワッチョイ 833c-AZYz)[sage]   投稿日:2017/01/26 09:33:06  ID:8RDF259k0.n(2)
>652
String.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)) //これは出来る
コメント1件

654
デフォルトの名無しさん (アウアウウー Sa7f-4cPM)[sage]   投稿日:2017/01/26 10:39:40  ID:k8NBikxqa.n
Swiftに慣れるとSwift以外でのコーディングが煩わしくなるぞ
varとletの明確な使い分けも、それがない言語だと逆にモヤッとする

655
デフォルトの名無しさん (ワッチョイ 6ac9-P4zY)[sage]   投稿日:2017/01/26 10:57:10  ID:KCQLgRNZ0.n
Stringに関して言いたいことはメーリスで今のうちに言っとけよ
今ちょうどSwift4でStringどうするか議論の真っ最中だから

656
デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)[sage]   投稿日:2017/01/26 11:04:45  ID:CKOy8ZWqp.n
4は破壊変更なしで、5の破壊変更混みで直すからまだ時間はあるなw
>653もCharacterとUnicodeScalarをまとめた上位インターフェース作るだろ(適当

657
デフォルトの名無しさん (オイコラミネオ MM76-bF0B)[sage]   投稿日:2017/01/26 11:10:44  ID:NOZ2YrK+M.n(2)
オプショナルバインディングの利点ってなんだろう?
言葉で説明するのは難しいですわ
nilチェックして強制アンラップでもいいだろって思われそう
どう思う?

658
デフォルトの名無しさん (オイコラミネオ MM76-bF0B)[sage]   投稿日:2017/01/26 11:15:35  ID:NOZ2YrK+M.n(2)
と思っけど失敗のあるイニシャライザ使う時めっちゃ便利だわ
Appleのリファレンスは説得力あるわ

659
デフォルトの名無しさん (ワッチョイ 1b3c-R94c)[sage]   投稿日:2017/01/26 23:16:58  ID:ufLIfALs0.n
BB2C使って書き込みしてるけど、こういうブラウザアプリってどうやって作られてるの?
初心者だから全然想像できん
コメント1件

660
デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)[sage]   投稿日:2017/01/27 08:27:01  ID:Zy0rRYCMp.n
>659
定期乙

661
デフォルトの名無しさん (ワッチョイ 6f5b-ci5U)[]   投稿日:2017/01/27 17:31:32  ID:MVo+YM4y0.n
>650
俺は重宝してるけど。

_ = someMethod()

662
デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)[sage]   投稿日:2017/01/29 13:24:08  ID:MpcYD/kyp.n
let宣言しなくても変数_って使えたのか
いつ変わったんだ、便利じゃねーか
コメント1件

663
デフォルトの名無しさん (ワッチョイ 833c-T3y8)[]   投稿日:2017/01/29 14:08:41  ID:PyqVv5fH0.n(2)
>662
宣言じゃなくて、定義じゃね?

664
デフォルトの名無しさん (ワッチョイ 9733-4cPM)[sage]   投稿日:2017/01/29 15:05:33  ID:3Y3DXVvV0.n
アンダーバーってクソすぎやしないか

665
デフォルトの名無しさん (ササクッテロラ Sp13-4cPM)[sage]   投稿日:2017/01/29 15:25:26  ID:yL6xb8U5p.n
アンダーバーでいいと思います。

666
デフォルトの名無しさん (ワッチョイ 833c-T3y8)[]   投稿日:2017/01/29 17:02:22  ID:PyqVv5fH0.n(2)
アンダスコア

667
デフォルトの名無しさん (スッップ Sdca-2P18)[sage]   投稿日:2017/01/29 17:03:21  ID:htBmfO4kd.n
アンダースコアや三点リーダー、クソ過ぎやしないか

668
デフォルトの名無しさん (アウアウウー Sa7f-4cPM)[sage]   投稿日:2017/01/29 17:19:12  ID:EnysbUOea.n
許容範囲だと思います。

669
デフォルトの名無しさん (ワッチョイ 9739-4eSF)[]   投稿日:2017/01/30 07:33:20  ID:qYAaUQoA0.n
_ の書き方はともかく

引数にラベルが必須でないというのは
可読性の確保という面で
選択肢として存在するのはアリだと思うな

670
デフォルトの名無しさん (ワッチョイ 2b8c-EfrK)[sage]   投稿日:2017/01/30 08:01:35  ID:Jmyw1tRr0.n
C APIをSwiftから叩くために選択肢どころか必須機能なんだよなぁ
ObjCみたいにC APIだけは別の表記するならいいけどさ

671
デフォルトの名無しさん (スップ Sdca-eBhG)[sage]   投稿日:2017/01/30 09:17:47  ID:djGawl3Pd.n
swiftいいよ書きやすいよ
最近の次世代言語は関数型ばかりだからswiftが最後の希望や

672
デフォルトの名無しさん (ワッチョイ 833c-AZYz)[sage]   投稿日:2017/01/30 17:37:30  ID:5ceKaohv0.n(2)
ネタ
DictionaryのValueをOptionalにした場合の
削除とnil設定のオーバーロード区別
http://swiftlang.ng.bluemix.net/#/repl/588ef6a306f99d213b3a7f3a
コメント1件

673
デフォルトの名無しさん (ワッチョイ 833c-AZYz)[sage]   投稿日:2017/01/30 20:30:32  ID:5ceKaohv0.n(2)
ついでに今更ながら>498の対策
http://swiftlang.ng.bluemix.net/#/repl/588f20efcf58891f104c975c

どちらにも言えることだけど
意味的に異なるオーバーロードがあると厄介

674
デフォルトの名無しさん (ワッチョイ 9733-4cPM)[sage]   投稿日:2017/01/31 08:04:31  ID:TojTxigN0.n
詳解Swift 第2版と第3版ってやっぱ内容だいぶ違う?
仕様ころころしててイライラしてるんだけど

675
デフォルトの名無しさん (スプッッ Sd6a-eBhG)[sage]   投稿日:2017/01/31 09:09:51  ID:qlhVwcaGd.n
その程度でイライラするならswift向いてないよ

676
デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)[sage]   投稿日:2017/01/31 10:07:32  ID:Wlpmu9Pop.n
だいぶ違うし、4版が出るならまた変わってるだろうなぁ
破壊変更がないとしてもだ

なんで詳細Swiftなんて買ったと言わざるをえない
Qiitaで直近の記事を漁った方がよほど有効だろうよ

677
デフォルトの名無しさん (ワッチョイ afc9-4cPM)[]   投稿日:2017/01/31 10:44:07  ID:IISx8Cj70.n(3)
>672
keySortedメソッドの引数
by:(Key,Key)->Bool

がよく判りません。
Key型を要素とするタプルを取ってBoolを返すclosure byって意味なんだと思いますが、Key型ってなんですか?
コメント1件

678
デフォルトの名無しさん (アウアウウー Sa7f-4cPM)[sage]   投稿日:2017/01/31 10:57:03  ID:13oBEuV5a.n
タプルってw
引数を2つとってBoolを返すクロージャだろ

679
デフォルトの名無しさん (オイコラミネオ MM76-bF0B)[sage]   投稿日:2017/01/31 11:38:05  ID:5xUQa1EZM.n
Keyはラベルです

680
デフォルトの名無しさん (ワッチョイ 833c-AZYz)[sage]   投稿日:2017/01/31 12:46:54  ID:E6Yo5vL90.n(2)
>677
ジェネリクスの型パラメータ名

http://swiftdoc.org/v3.0/type/Dictionary/
> struct Dictionary<Key : Hashable, Value>

extensionの中では元定義にある型パラメータ(Key, Value)や
Associated Types(Element, Indexなど)が使える

[Int:Int?] は Dictionary<Int,Int?> の糖衣構文
コメント1件

681
デフォルトの名無しさん (ワッチョイ afc9-4cPM)[]   投稿日:2017/01/31 14:26:38  ID:IISx8Cj70.n(3)
>680
納得です。
ジェネリクスの型パラメータなんですね!

それでも、こう書くとコンパイルできない。なんでだ?
func keySorted(by:(Key, Key)->Bool) -> [(Key,Value)] {a, b in
return self.sorted{by(a.key,b.key)}
コメント1件

682
デフォルトの名無しさん (ワッチョイ 833c-AZYz)[sage]   投稿日:2017/01/31 14:49:05  ID:E6Yo5vL90.n(2)
>681
1つ目の{は関数本体の始まり、2つ目の{がクロージャー

func keySorted(by:(Key, Key)->Bool) -> [(Key,Value)] {
  return self.sorted {a, b in
    by(a.key, b.key)
  }
}
コメント1件

683
デフォルトの名無しさん (ワッチョイ afc9-4cPM)[]   投稿日:2017/01/31 15:12:54  ID:IISx8Cj70.n(3)
>682
あんた!親切だなぁ。

684
デフォルトの名無しさん (ワッチョイ 1b3c-R94c)[sage]   投稿日:2017/01/31 22:05:26  ID:Jtcmcjs90.n
プログラミング初心者でiOSアプリ作ってるけど、オススメの学習サイトある?
ドットインストールは全部やってしまった
コメント2件

685
デフォルトの名無しさん (アウアウウー Sa7f-4cPM)[sage]   投稿日:2017/01/31 22:25:58  ID:cYDluZxDa.n
オススメは、raywenderlich.com やろなぁ
英語だけど

686
デフォルトの名無しさん (ワッチョイ 7fa1-+rHU)[sage]   投稿日:2017/01/31 22:39:58  ID:BjflOzhk0.n
>684
それより何作ったらいいかな?

687
デフォルトの名無しさん (ワッチョイ 7eba-eBhG)[sage]   投稿日:2017/01/31 22:59:56  ID:rB3HMGuL0.n
初心者ならappleの公式ドキュメントでしばらく困らなくね?
コメント1件

688
デフォルトの名無しさん (ワッチョイ afc9-4cPM)[]   投稿日:2017/02/01 10:21:51  ID:P9C8z9K60.n(2)
>687
しばらくどころか、公式ドキュメントはズゥートお世話になります。
何言ってるか?チンプンカンプンなところもあるけど。
UITableViewの2つのメソッドの使い方がよく判らん。

dequeueReusableCell, register
コメント1件

689
デフォルトの名無しさん (ワッチョイ afc9-4cPM)[]   投稿日:2017/02/01 10:38:50  ID:P9C8z9K60.n(2)
>684
日本語、独学だけでiOSアプリを自在に作れる様にはなれない。

英文でしか、入手できない情報が多いから。

英語で情報取れるなら、独学でOK!
これが現実。
コメント1件

690
デフォルトの名無しさん (ワッチョイ aade-EfrK)[sage]   投稿日:2017/02/01 11:44:08  ID:nI3xSAO90.n

691
デフォルトの名無しさん (スプッッ Sd6a-T3y8)[]   投稿日:2017/02/01 12:10:48  ID:rrXFdmRqd.n
>689
ちょっと違うんじゃないないかな。

Appleは、公式に日本語資料もリリースしているけれども、最終的には英語の資料を見るように書いてある。
それに、帰結すると思う。

よって
> 英文でしか、入手できない情報が多いから。
では無くて、英文で入手しなくてはならない。

> 英語で情報取れるなら、独学でOK!
これが現実。
まーこれは、正解。
その通りだね。

692
デフォルトの名無しさん (オイコラミネオ MM76-bF0B)[sage]   投稿日:2017/02/01 12:12:02  ID:smtLVi82M.n
>688
そのメソッドはね、セル自体を更新する時に使うよ
チェックマークをつけたり、外したり

693
デフォルトの名無しさん (ワッチョイ 13b6-UFRj)[]   投稿日:2017/02/03 09:03:28  ID:QkHJCDQQ0.n(2)
すみません。質問よろしいでしょうか。
今、macでテストアプリ作ってるんですが、
アプリ内のボタンを押したらキーボードでショートカットを入力した状態(画面切り替えの' ^← 'とか)にする方法はないでしょうか?
ご教授お願いいたします
コメント2件

694
デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)[sage]   投稿日:2017/02/03 10:34:26  ID:9keII8ru0.n
スレチ

695
デフォルトの名無しさん (スフッ Sd9f-4SR0)[sage]   投稿日:2017/02/03 12:29:41  ID:REH9prgEd.n(2)
>552
古い話にレスつけて悪いが

この場合のdelegateはiOS/macOSのライブラリの話なので
言語の教科書には出てこない
操作対象と処理を行う所を分けるしくみの概念的な名称
勉強したければiOS/macOSのプログラミングの資料を参照するとよい

protocolはSwiftの言語仕様なのでSwift言語の教科書で説明される
共通の名称で処理を受け付けることを保証するしくみ

OSのdelegateの多くはswiftではprotocolを使って実装されている
コメント1件

696
デフォルトの名無しさん (ワッチョイ 13c9-kDlj)[]   投稿日:2017/02/03 12:54:13  ID:OvWQoQse0.n
delegateってのは、まあ、いろんなコンテクストで出てくるから混乱するけど、
制御の逆転、っていう設計を実装する時にでてくるパターンとか、プロパティー変数だとかなんだよねぇ。

だから、言語の教科書には出てこない。Design Patternの本には出てくるかも。
教科書に出てきていても良い様な気がするけど、そんな事を上手く説明できる
著者も少ない事もあって、和文では良い説明がされているのを見た事無いなぁ。

delegateがわからんと、Framework/Libraryの違いが理解できんからね。

まあ、ここの辺りが障壁になってるから、俺みたいなおっさんでも食っていける
わけだが!

697
デフォルトの名無しさん (アウアウウー Sa07-kDlj)[sage]   投稿日:2017/02/03 13:07:30  ID:QCj1HTOka.n
イベントドリブンになれたVBプログラマならなんとかなるやろ使うだけなら
設計する側になるとあれやろうけど

698
デフォルトの名無しさん (ワッチョイ 13b6-UFRj)[]   投稿日:2017/02/03 14:12:12  ID:QkHJCDQQ0.n(2)
>693
スレチみたいなので他のところ行ってきます
すみませんでした

699
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/03 15:29:58  ID:p7fNNQ2Y0.n(2)
>695
詳解Objective-Cにはデリゲートの節があるよ
分かりにくいから役には立たないけどね

700
デフォルトの名無しさん (ワッチョイ 934e-2G09)[sage]   投稿日:2017/02/03 15:59:32  ID:GQ++c1010.n(2)
delegate:委譲 delegater:委譲元 delegatee:委譲先

delegaterにdelegateeの参照を持たせてコールバックしてもらう
tableViewにviewControllerの参照を持たせてcellForRowを呼んでもらう

701
デフォルトの名無しさん (ワッチョイ 934e-2G09)[sage]   投稿日:2017/02/03 16:02:25  ID:GQ++c1010.n(2)
間違い -> 委譲元:delegator

702
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/03 17:13:14  ID:p7fNNQ2Y0.n(2)
細かいけど委譲はdelegation
delegateって言葉は基本的に委譲先のオブジェクトを指す言葉として使われてると思うよ
delegate == delegate object == delegatee
https://developer.apple.com/library/prerelease/content/documentation/Gene...

703
デフォルトの名無しさん (スフッ Sd9f-4SR0)[sage]   投稿日:2017/02/03 19:50:02  ID:REH9prgEd.n(2)
最初のうちって
言語の話と、OSやライブラリの仕組みの話と、開発ツールの話が
違うってことに気付かないんだよね

でもこれに気づけないと、正しい教科書にすらたどり着けない
意外と大きな落とし穴
コメント1件

704
デフォルトの名無しさん (ワッチョイ 135b-C9DF)[]   投稿日:2017/02/03 20:01:45  ID:j/Uvz34o0.n
>703
自分が何を知りたいのか?が判るまで、結構時間かかる人多いね。


705
デフォルトの名無しさん (アウアウウー Sa07-kDlj)[sage]   投稿日:2017/02/03 20:55:42  ID:MnLqnHc9a.n
 
  以上。

706
デフォルトの名無しさん (スフッ Sd9f-4SR0)[sage]   投稿日:2017/02/04 15:18:45  ID:EO0q2wxld.n
>693さんは無事に目的のスレにたどり着いたかな?

自動化に主眼があるならAutomatorかAppleScript

テストに主眼があるならXCTestのUITest

あたりなんだろうけど、残念ながら詳しくは無い
コメント2件

707
デフォルトの名無しさん (ワッチョイ 3fb6-UFRj)[]   投稿日:2017/02/04 21:20:56  ID:hsGpXHdO0.n(2)
>706
おおお!ありがとうございます!
applescriptをswiftで呼び出したらいいのかな?
やってみます!

708
デフォルトの名無しさん (ワッチョイ 3fb6-UFRj)[]   投稿日:2017/02/04 21:54:16  ID:hsGpXHdO0.n(2)
>706
できました!
本当にありがとうございます!
コメント1件

709
デフォルトの名無しさん (ワッチョイ b333-tZqJ)[sage]   投稿日:2017/02/04 21:55:53  ID:TiE86E8B0.n
Swiftおつ

710
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/04 22:36:30  ID:2gkSNY4M0.n
AppleScriptに比べると面倒くさいけど直接キーボードイベントを発火させる方法もあるよ

//Cmd+Tabキーの例
let tab_down = CGEvent(keyboardEventSource: nil, virtualKey: 0x30, keyDown: true)
let tab_up = CGEvent(keyboardEventSource: nil, virtualKey: 0x30, keyDown: false)
tab_down?.flags = CGEventFlags.maskCommand
tab_up?.flags = CGEventFlags.maskCommand
tab_down?.post(tap: CGEventTapLocation.cghidEventTap)
tab_up?.post(tap: CGEventTapLocation.cghidEventTap)
コメント1件

711
デフォルトの名無しさん (ワッチョイ ff93-4SR0)[sage]   投稿日:2017/02/05 11:11:41  ID:vWH4gLvD0.n
>708
なんかお役に立てたようで

ほとんど当てずっぽうだったんだけどね

可能なら、SwiftからAppleScript呼び出す辺りのコードを公開してもらえれば
他の人の参考になるかも
コメント2件

712
デフォルトの名無しさん (ワッチョイ 135b-vqxm)[]   投稿日:2017/02/05 11:19:54  ID:DgXxXeRF0.n(2)
>711
import Foundation

let task = NSTask()
task.launchPath = "/usr/bin/osascript"
task.arguments = ["~/Desktop/testscript.scpt"]

task.launch()

713
デフォルトの名無しさん (ワッチョイ 7f3c-mNa5)[sage]   投稿日:2017/02/05 14:35:54  ID:PLwA9BVe0.n
話題性の無い言語になってきたな。
スレの勢いも無くなってきてる。
一発屋だったのかこの言語。
コメント1件

714
デフォルトの名無しさん (アウアウウー Sa07-kDlj)[sage]   投稿日:2017/02/05 14:49:06  ID:u0BexBI4a.n(2)
Swift楽ですよ
Obj-Cと比べて体感的に記述量が4割減に感じますわ

715
デフォルトの名無しさん (ワッチョイ b333-kDlj)[sage]   投稿日:2017/02/05 15:53:34  ID:nMpDa1VZ0.n(2)
短い=可読性がよくなる
ってわけではないと聞いたことがあるのですが実際の所どうでしょうか?

716
デフォルトの名無しさん (ササクッテロリ Spa7-gHkU)[sage]   投稿日:2017/02/05 15:57:06  ID:u0uQCFq0p.n(2)
日本語と英語、どっちが優れている?って愚問と同じレベル

717
デフォルトの名無しさん (アウアウウー Sa07-kDlj)[sage]   投稿日:2017/02/05 16:34:01  ID:u0BexBI4a.n(2)
まずね、クラス一つ作る時の億劫さが違う
Obj-Cだと、ひとまずNSObject継承して、ヘッダファイルに@interface書いて、@property書いて、実装ファイルの@implementationに @synthesize書いて、イニシャライザ書いてってなるけど、
Swiftだと、

class Monster {
  let name: String
  var hp: Int
  init(name: String, hp: Int) {
    self.name = name
    self.hp = hp
}
}

って感じでバッバッとスクリプト感覚で定義できるから、思考を極力止めないでコーディング出来る
構造体だとイニシャライザも自動生成なのでさらに楽
struct Monster {
  let name: String
  var hp: Int
}

Obj-Cと比べて記述量が圧倒的に有利
今じゃ残業もなくなってObj-Cプログラマを横目に定時に帰って彼女とイチャイチャしてます。
もっと早くやっとけばよかった・
コメント4件

718
デフォルトの名無しさん (ワッチョイ 135b-vqxm)[]   投稿日:2017/02/05 17:09:05  ID:DgXxXeRF0.n(2)
>717
Obj-Cってあんまり書いた事無いので参考になりました。
詳解Obj-Cってのを中古本で買って、ペラペラやった位なので、
ほんとご意見参考になりました。

719
デフォルトの名無しさん (ワッチョイ 037b-eX/G)[sage]   投稿日:2017/02/05 17:13:01  ID:iKJkAlzP0.n
>713
お前さんみたいな荒らしの勢いが落ちてるって、それ一番言われてるから

Apple信者 vs Appleアンチ: betaから1.x
Swiftユーザ vs ObjC信者: 2.x
Swiftユーザ vs C++ユーザ: 3.0前後
beta以来、こんな対抗煽りがあったけどC++煽りが通用しなくなってきて勢い落ちてる
そろそろ vs 新興言語(Rust, Go)で荒らす時期なんじゃないの?(助言

720
デフォルトの名無しさん (ワッチョイ b333-kDlj)[sage]   投稿日:2017/02/05 17:59:05  ID:nMpDa1VZ0.n(2)
>717
www

721
デフォルトの名無しさん (ワッチョイ 3fb6-UFRj)[]   投稿日:2017/02/05 19:08:24  ID:VgP7nWQb0.n
>710
こんな方法もあるんですね!
こっちも試してみます。ありがとうございます。
>711
記述方法があってるかはわかりませんが、初心者なのでご容赦ください。
こんな感じでキAppleScriptを呼び出しました。
let appleScript = 「使いたいAppleScriptの記述」
NSAppleScript(source: appleScript)?.executeAndReturnError(nil)
コメント1件

722
デフォルトの名無しさん (ワッチョイ cfba-uZek)[sage]   投稿日:2017/02/05 22:21:36  ID:o/8EHNtf0.n
他言語から来ると引数のラベルの存在意義が理解できず、むしろとても煩わしいので全て_付けてるのですが、なんなんですか?これ
この邪魔くさいラベルが必要な理由を教えてください
コメント5件

723
デフォルトの名無しさん (アウアウウー Sa07-kDlj)[sage]   投稿日:2017/02/05 22:33:36  ID:4p/Nn5VFa.n
関数を作った本人ならその時は分かるかもしれんが、第三者がその関数を使う時とか後から保守する時にわかりやすいようにだろ

724
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/05 22:55:46  ID:eIQFXmLo0.n
>722
これははげしく同意
理由は名前と引数・戻り値の型が同じでも引数の外部名が違えば違う関数として扱いたいから
NextStepの遺産じゃないのかな
コメント1件

725
デフォルトの名無しさん (ササクッテロリ Spa7-gHkU)[sage]   投稿日:2017/02/05 23:04:05  ID:u0uQCFq0p.n(2)

726
デフォルトの名無しさん (ワッチョイ 7fc9-SsPq)[]   投稿日:2017/02/06 00:44:00  ID:SAGpF4BT0.n
>717
なるほどね。とりあえず彼女のスリーサイズとカップ数をあげてくれ

727
デフォルトの名無しさん (ワッチョイ 633c-0MWP)[sage]   投稿日:2017/02/06 00:49:54  ID:dg7Gkhyu0.n(2)
>722
他言語でも特に分かり辛い引数は説明用変数を用意したりしてたから
俺の場合ラベルはすんなり腑に落ちたな

sh.shiftRows(r, r, 1, true, false);

 ↓

boolean copyRowHeight = true;
boolean resetOriginalRowHeight = false;
sh.shiftRows(r, r, 1, copyRowHeight, resetOriginalRowHeight);

728
デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)[sage]   投稿日:2017/02/06 01:01:01  ID:3ZIy1rLW0.n(4)
>722
named parameterでググれよ

729
デフォルトの名無しさん (ワッチョイ cfba-UJvE)[sage]   投稿日:2017/02/06 01:20:02  ID:0dGh9mJF0.n(3)
>724
なるほど理解しました
swiftに採用したのは頂けませんね
第一引数だけラベル必要としないのがまた理解に苦しみます
コメント2件

730
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/06 01:27:27  ID:+8BGH8XP0.n(6)
ラベル指定が必須ってのが面倒くさい元凶
必要な時に書けるようになってるのは何も悪くない
(foo, bar)ってタプルを使いたい時に( _: foo, _: bar)って書かないといけなかったらキレるよね

731
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/06 01:33:52  ID:+8BGH8XP0.n(6)
>729
>第一引数だけラベル必要としないのがまた理解に苦しみます
それはSwift3で修正されたんじゃ?

732
デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)[sage]   投稿日:2017/02/06 02:21:15  ID:3ZIy1rLW0.n(4)
関数を使う側はIDEが補完してくれるんだから何も面倒くさいことなんて無いはずだろ
それなのにその存在しないコストを気にして関数定義時に毎回わざわざ "_" 書いてるって?
ドMなのかな?

733
デフォルトの名無しさん (アウアウウー Sa07-kDlj)[sage]   投稿日:2017/02/06 02:42:20  ID:My0G4nGHa.n(2)
俺の長年の研究によると
英語が苦手なやつほど、いろんな所を省略したがる
変数名とか関数名も面倒くさがって日本語名を使う傾向がある

func shohizeiKeisan(kakaku: Int) -> Int

みたいな感じで定義するから、呼び出し側で
let kekka = shohizeiKeisan(kakaku: 1200)
みたいな呼び出し方になってラベルの冗長性があまり効果的に使われない

たまに英語を使ったか思えば、綴りを間違ってたり変な短縮の仕方してたりする
オープンソースにすると恥ずかしいレベル
コメント1件

734
デフォルトの名無しさん (アウアウウー Sa07-kDlj)[sage]   投稿日:2017/02/06 02:49:54  ID:My0G4nGHa.n(2)
calculateTax(forPrice price: Int) -> Int
みたいに書けば
let tax = calculateTax(forPrice: 1200)
違和感ないんだけど
コメント1件

735
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/06 05:03:00  ID:+8BGH8XP0.n(6)
>734
>let tax = calculateTax(forPrice: 1200)

こういう例がSwift本でもよくあるんだけどマジックナンバーを直接書くことなんてほぼないからね
calculateTax(price)で十分なところを
calculateTax(forPrice: price)みたいな冗長な表現になってノイズが増えることのほうが多い
コメント5件

736
デフォルトの名無しさん (ワッチョイ ff93-4SR0)[sage]   投稿日:2017/02/06 08:42:17  ID:VccDqIOI0.n
>721
さんきゅ
参考になります

737
デフォルトの名無しさん (スプッッ Sd9f-UJvE)[sage]   投稿日:2017/02/06 09:08:43  ID:cYxXlAn6d.n
>735
ほんとそれ

738
デフォルトの名無しさん (スフッ Sd9f-4SR0)[sage]   投稿日:2017/02/06 09:48:23  ID:6ukkaCk+d.n(2)
>729
せっかく今からSwift勉強するならSwift3にしませう

739
デフォルトの名無しさん (エムゾネ FF9f-4SR0)[sage]   投稿日:2017/02/06 10:13:04  ID:LieVvyVtF.n
>735
実際には引数の違いで長ったらしい関数名になっているライブラリなどの場合には
関数名を短く、同じ関数名を使用する事が出来るので理解しやすくなる

教科書の例題に出てくる程度の関数の量と名前の長さなら問題無いんだけどね
コメント1件

740
デフォルトの名無しさん (アウアウウー Sa07-kDlj)[sage]   投稿日:2017/02/06 10:16:13  ID:bt8MJocIa.n(2)
関数の引数が何かなんて作った本人はよく知ってるだろうけど、第三者には説明がないとわからないわけで、例えば、価格と税率の2つの引数を取るような関数だったら、第一引数が価格なのか、税率なのかは説明がないと分からないし
渡すべき引数も様々に変わる。
だから、関数の仕様を把握する上で俺は>735の書き方に違和感は感じないけれど、それが冗長に思えるならもう感覚の問題というしかないな
コメント2件

741
デフォルトの名無しさん (ワッチョイ a317-4SR0)[sage]   投稿日:2017/02/06 10:26:20  ID:pkGDAQrJ0.n(2)
>717
property宣言したら自動でsynthesizeされるので記述不要
何年か前からね

742
デフォルトの名無しさん (ワッチョイ 633c-vqxm)[sage]   投稿日:2017/02/06 10:26:53  ID:vLeuYaJ10.n(3)
>733
func calc消費税(価格: Int) -> Int

これだとIDEで保管もしてくれるし、最高!
自分は日本語使ったことないけど
コメント1件

743
デフォルトの名無しさん (ササクッテロリ Spa7-gHkU)[sage]   投稿日:2017/02/06 10:30:32  ID:VcPP6UDEp.n(2)
日本語入力/英語入力の切り替えが最悪だな
ネタでも最高!とか言っちゃえる辺りがすごい
コメント1件

744
デフォルトの名無しさん (ワッチョイ 633c-vqxm)[sage]   投稿日:2017/02/06 10:33:25  ID:vLeuYaJ10.n(3)
>743
お前Xcode使ってないの?
関数を使用する時は、最初の数文字入力するだけで保管されるんだぜ?

作成時のコスト?大したことねーよ、きっと
コメント1件

745
デフォルトの名無しさん (ワッチョイ 633c-0MWP)[sage]   投稿日:2017/02/06 10:34:23  ID:dg7Gkhyu0.n(2)
>735
その手の冗長性は俺としては良いと思うんだけどな

受け売りだけど「間違ったコードは間違って見えるようにする」という観点的に
受ける側と渡す側の合致が目視で分かるのは安心感がある

まぁ適度を考慮してアンダースコアも割と使うけど

746
デフォルトの名無しさん (ササクッテロリ Spa7-gHkU)[sage]   投稿日:2017/02/06 10:44:17  ID:VcPP6UDEp.n(2)
>744
「きっと」にワロタw

747
デフォルトの名無しさん (スプッッ Sd9f-UJvE)[sage]   投稿日:2017/02/06 11:25:24  ID:2jscAFeGd.n(2)
>740
普通は他人にわかるようにするためにドキュメントコメントを付けるものだからやっぱりラベルなんていらんね

>739の利点なら理解はできるけど
コメント1件

748
デフォルトの名無しさん (アウアウウー Sa07-kDlj)[sage]   投稿日:2017/02/06 11:32:13  ID:bt8MJocIa.n(2)
>普通は他人にわかるようにするためにドキュメントコメントを付ける

うん普通はね
でも世の中には強制でもされないとコメント書かない奴がいっぱいいる
それに関数ベースで説明的なラベルが付いてれば、わざわざ関数のコメント読まなくても
IDEの補完が効いて関数の仕様を理解しやすい
コメント1件

749
デフォルトの名無しさん (スフッ Sd9f-4SR0)[sage]   投稿日:2017/02/06 12:19:34  ID:6ukkaCk+d.n(2)
>747
うちの合言葉は
「読みやすいソースとコメントは半年後の自分へのメッセージ」
「多少冗長に思えても、半年後の自分が困らないように書こう。書き直しも躊躇するな。」

以前は「メンテする人・使う人」だったんだけど「半年後の自分」に言い換えてから
割と真面目に対応してくれる人が増えた

750
デフォルトの名無しさん (ワッチョイ 132b-eX/G)[sage]   投稿日:2017/02/06 12:19:53  ID:QBi3Y3km0.n(2)
昔のObjC I/Fみたいに[前置詞]+[名詞]なラベルなら意味あるけど
今のObjCやSwift I/Fみたいに[前置詞]だけのラベルにはその論(ラベルだけで説明)は時代遅れだと思った

今は「ラベルは前置詞、変数名は名詞」で定義して、IDE(Xcode)のコード補完で関数説明じゃない
あ、コメントは書かないやつ多いし、自分もせっせと書くの面倒だから、関数定義で説明できるのは好ましい
コメント1件

751
デフォルトの名無しさん (ワッチョイ 132b-eX/G)[sage]   投稿日:2017/02/06 12:21:28  ID:QBi3Y3km0.n(2)
>750>748へのレス

752
デフォルトの名無しさん (ワッチョイ a317-4SR0)[sage]   投稿日:2017/02/06 12:46:46  ID:pkGDAQrJ0.n(2)
>742
Swiftだと日本語の関数名も補完されるのか。いいな。
Objective-Cだと日本語が混ざると補完が効かなくなったはず。

753
デフォルトの名無しさん (ブーイモ MMc7-XgLl)[]   投稿日:2017/02/06 15:47:59  ID:0PGGfaNyM.n
>722
他言語ってLLだろどうせ。LLで言語名乗るなよスクリプトっていえよ
TypeScriptでもScalaでもJava (lombok)でもカタいのは全てlabel付きの方向に行ってるのに
この時代に乗れない男を引き取ってくれる優しい言語はこの先現れるのだろうか
破棄、再評価を繰り返すこの業界で全くないとは言い切れんが
コメント1件

754
デフォルトの名無しさん (ワッチョイ 13c9-kDlj)[]   投稿日:2017/02/06 16:37:12  ID:M531ILGV0.n
>753
メソッド呼び出し時にラベルとともに引数を書くのはSwiftだけだと思ってたら、そうじゃないのね?

いまScalaってのをググってみたけど、ラベルなしでメソッド定義、呼び出ししてるみたいだが?

755
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/06 16:51:52  ID:7LeUyz1la.n
つ Objective-C

756
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/06 17:58:08  ID:+8BGH8XP0.n(6)
>740
呼ぶ側にラベルを強制する必要なんてないでしょ
C#の例だけどラベル無しでも有りでも呼べるし有りなら順序も変えられる

static int CalculateBMI(int weight, int height) {...}
var weight = 60, height = 180;
CalculateBMI(weight, height); //<― こういう明らかなのはこれで呼びたい
CalculateBMI(weight: weight, height: height);
CalculateBMI(height: height, weight: height);

Swiftの仕様はAppleが既存ライブラリへの影響を最小限にするための苦肉の策だよ
コメント1件

757
デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)[sage]   投稿日:2017/02/06 18:58:04  ID:3ZIy1rLW0.n(4)
>756
それ誰かがうっかり
CalculateBMI(height, weight);
って書いてエンバグしてた場合気付けなくね

それともC#って順番じゃなくて変数名で引数に対応付けてくれんの?

JavaScript(ES2015)ではObjectを引数に取ることで疑似名前付き引数にする手法とObject Literal Shorthandの合せ技でそういうこと出来るようになってるけど
コメント1件

758
デフォルトの名無しさん (ササクッテロロ Spa7-kDlj)[sage]   投稿日:2017/02/06 19:38:32  ID:+DEdH8rPp.n
だよな
関数を書いた本人は引数の順番知ってるかもしれんけど、第三者とか未来の自分はどうだろう
コメント1件

759
デフォルトの名無しさん (スプッッ Sd9f-UJvE)[sage]   投稿日:2017/02/06 21:30:09  ID:2jscAFeGd.n(2)
呼び先のメソッド見ればわかるし
コメント1件

760
デフォルトの名無しさん (ワッチョイ 633c-vqxm)[sage]   投稿日:2017/02/06 22:16:02  ID:vLeuYaJ10.n(3)
>759
自分が使う時は見るけれど、後から第三者が書いたコード読むときにいちいち確認するのはめんどくさい

761
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/06 22:18:34  ID:+8BGH8XP0.n(6)
>757
>758
最終的にはテスト書こうねって話だけど
ある程度の補完機能のあるエディタを使ってれば定義を見ながらコード書くから順番が分からないこともないし間違える可能性もすげー低い
それでも可能性はゼロじゃないけどこの手のミスを防ぐためだけなら可読性を犠牲にするほどの価値があるとは思わない
アンスコ書かなくてもデフォルトは省略可能で強制したい時だけ指定できるようにすれば十分

静的型付け言語なんだから型チェックに引っかかるような書き方を楽にできるようにしていくほうが言語としてはいい気がする
コメント1件

762
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/06 22:41:12  ID:eyNF5CHCa.n(4)
ま人それぞれなのかもの知らんけど、俺はXcodeの補完機能とラベルのおかげでコーディングがすごい楽になったわ
引数の多いAPIとか呼び出す時もわかり易い

そもそも他の言語だって、関数を定義する時は引数名と型を指定するわけで、そこの労力は変わらない(Swiftの場合は、引数名に加えて別のラベル名も指定できるけど、これは別に書かなければ引数名がそのままラベル名になる)し、
関数を呼び出す時も、何度も言うけどXcodeの補完が効くので、tabキー押しながら値を埋めていくだけで特に手間はかからない
そこまでラベルを嫌がる理由が俺には理解できない

763
デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)[sage]   投稿日:2017/02/06 22:48:44  ID:3ZIy1rLW0.n(4)
ある日API側で
static int CalculateBMI(int height, int weight) {...}
に変わってたら?
ラベル書いてればコンパイラが引数間違ってるよって教えてくれるけど、間違える可能性すげー低いという思い込みでラベル書かない人は絶対気付けないよ

テスト書けばいい?
その前にまずラベル書いてくださいよ(苦笑
コメント2件

764
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/06 22:52:49  ID:eyNF5CHCa.n(4)
>761
可読性を犠牲にって、ラベルのおかけで可読性は上がると思うんだが...
無茶苦茶なラベル名つけてない限り

765
デフォルトの名無しさん (ワッチョイ cfba-UJvE)[sage]   投稿日:2017/02/06 22:57:21  ID:0dGh9mJF0.n(3)
>763
そんな変更を勝手に加える危ないAPIなんて使わないという選択をまず取る

766
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/06 22:59:24  ID:eyNF5CHCa.n(4)
予知能力者かな

767
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/06 23:29:35  ID:+8BGH8XP0.n(6)
>763
ラベル書いてたら普通はエラーにならずそのまま使えるよ。Swift以外ではね
可読性が上がるのなら書くしそうじゃないなら書かない、そういう選択肢が無いのが俺は嫌
コメント1件

768
デフォルトの名無しさん (ワッチョイ cf42-qddC)[sage]   投稿日:2017/02/06 23:29:54  ID:DXHlWVxm0.n
>735
c#、pythonみたいにラベル=仮引数名で十分

769
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/06 23:39:42  ID:eyNF5CHCa.n(4)
>767
選択肢あるだろ アンスコ( _ )
コメント1件

770
デフォルトの名無しさん (ワッチョイ cfba-UJvE)[sage]   投稿日:2017/02/06 23:57:51  ID:0dGh9mJF0.n(3)
xcodeが最初に自動生成するコードもアンダースコア付いてるんだよなあ
コメント2件

771
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/07 00:02:13  ID:d/8njjdTa.n(2)
>770
いやそれは昔からあるObj-Cで書かれたAPIの呼び出し方に合わせるためだろ

772
デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)[sage]   投稿日:2017/02/07 00:03:29  ID:U45A8ASp0.n
>770
API Design Guidelines読めよ
ラベルなし全てが否定されてるわけじゃない
単に面倒だとか安全性を考えてないとか他の言語では〜とかそういうアホな考えでラベルなしを選択するのがアホの極みだっていうだけだ

773
デフォルトの名無しさん (ワッチョイ 7f85-0MWP)[sage]   投稿日:2017/02/07 00:52:48  ID:ZXoOddG/0.n
Autolayoutの親Viewって何?
自分で設定するの?それとも
ViewControllerのこと?

774
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/07 01:02:31  ID:d/8njjdTa.n(2)
レイアウト対象になってるViewの親Viewのことじゃねーの?
つうか質問する時に説明を省くんじゃねーよ
Autolayoutの親Viewってどこに書いてあったんだよ
それが書かれた文脈がわからないと想像でしか答えられんわ
つうか疲れたからもう寝る

775
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/07 02:36:50  ID:GtuDXK2z0.n(3)
>769
w マジレスするとアンスコにしたらラベル付き呼びたくても呼べない その逆もしかり
関数作る時に他言語では不要な意思決定がSwiftでは必要
言語仕様が変わらない限りどうしようもないからこの話題はこの辺で
コメント3件

776
デフォルトの名無しさん (ササクッテロラ Spa7-kDlj)[sage]   投稿日:2017/02/07 02:51:43  ID:XrNu72Jop.n
>775
そんな器用なことしたいならオーバーロードすればいいだ

func add(_ a: Int, _ b: Int) -> Int {
 return a+b
}

func add(a: Int, b: Int) -> Int {
 return add(a, b)
}

// お好きな呼び方でぇ
let x = add(10, 20)
let y = add(a: 10, b: 20)

777
デフォルトの名無しさん (スフッ Sd9f-4SR0)[sage]   投稿日:2017/02/07 08:38:57  ID:7sv3izQhd.n(3)
>775
ラベルが要らないと思ったからアンダースコアにしたんだろ?
言ってる事が矛盾してね?

呼び出し時にラベルを付けたいと思うなら
それはラベルを付ける価値があるという事で
強制されたところでだれも不便に思わないよ

778
デフォルトの名無しさん (スフッ Sd9f-4SR0)[sage]   投稿日:2017/02/07 08:41:22  ID:7sv3izQhd.n(3)
>775
>関数作る時に他言語では不要な意思決定がSwiftでは必要

無自覚に行われる小さな意思決定をプログラマに明示的に自覚させると言うのは
Swiftの設計思想の結構大切なところだと思うよ
コメント1件

779
デフォルトの名無しさん (ワッチョイ c366-4SR0)[sage]   投稿日:2017/02/07 21:14:52  ID:4jeefcmH0.n
それでなにかよくなるのかね

780
デフォルトの名無しさん (スフッ Sd9f-4SR0)[sage]   投稿日:2017/02/07 21:31:12  ID:7sv3izQhd.n(3)
もちろん!

781
デフォルトの名無しさん (ワッチョイ b333-mNHV)[sage]   投稿日:2017/02/07 22:24:06  ID:ZIH2X64r0.n
具体的におなしゃす

782
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/07 22:28:45  ID:GtuDXK2z0.n(3)
>778
関数作る時に決めるべきことと使う時に決めるべきことの違いを理解しようか

783
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/07 22:42:00  ID:xaIKpgD2a.n(4)
関数の仕様は作る側が使いやすいように決めればいいことだし、使う側は設計者の意図を汲み取ってそれに従うか、使いにくいと思ったら、継承するなりextensionで拡張するなりすればいい話

例えばsimdモジュールとか見ると、ラベル有り/無しバージョンのイニシャライザを提供してる

float2
public init(_ x: Float, _ y: Float)
public init(x: Float, y: Float)

どっちでも書ける
let v1 = float2(10, 20)
let v2 = float2(x: 10, y: 20)

float3、float4も同様

float3
public init(_ x: Float, _ y: Float, _ z: Float)
public init(x: Float, y: Float, z: Float)

float4
public init(_ x: Float, _ y: Float, _ z: Float, _ w: Float)
public init(x: Float, y: Float, z: Float, w: Float)
コメント1件

784
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/07 23:01:01  ID:xaIKpgD2a.n(4)
simdの設計者は

public init(_ x: Float, _ y: Float)
public init(x: Float, y: Float)

の2つのバージョンのイニシャライザは用意したけど、例えば第一引数だけラベル付きのイニシャライザ

public init(_ x: Float, _ y: Float)

は用意しなかった。
理由は分からないけれど、それを用意する必要性もメリットも感じなかったのかもしれないし、返って混乱の元になると考えたのかもしれない。
設計思想というほどのものでもないかもしれないけどそれが意図

でもそれがどうしても必要だという明確な理由があるなら extensionで追加すればいい
そんな理由があるとは思えないけど...

extension float2 {
 public init(x: Float, _ y: Float) {
  self.init(x, y)
 }
}

785
デフォルトの名無しさん (ササクッテロリ Spa7-gHkU)[sage]   投稿日:2017/02/07 23:02:03  ID:EhOLSQDnp.n
オプショナルで荒らしてたヤツが、キーワード_で荒らしてるだけだから
そんな真面目に相手しなくても良いだろうに

相手してる子も荒しで、荒し同士の空中戦かもだけど

786
デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)[sage]   投稿日:2017/02/07 23:07:09  ID:GtuDXK2z0.n(3)
>783
作る時の労力が増えるだけじゃなく使う時にコード補完で区別つかない
現状は一見同じシグニチャに見えるメソッドが2個ずつ並ぶことになる
それでもメリットが上回ると思う場合があったらはオーバーロードすればいいじゃね
コメント1件

787
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/07 23:12:30  ID:xaIKpgD2a.n(4)
まぁXcodeの補完はまだ改善の余地があるということで
それよりも早くリファクタリングできるようにしてほしい
Swiftの仕様が完全に固まるまで対応しないつもりかね
コメント1件

788
デフォルトの名無しさん (アウアウエー Sa5f-kDlj)[sage]   投稿日:2017/02/07 23:20:36  ID:xaIKpgD2a.n(4)
>786
労力?
別バージョンのシグニチャを用意するぐらい然程労力とも思えないけど
全ての引数の組み合わせでラベル有無バージョンを用意したいってのなら別だけど
そこまで自由度を待たせるなら、ディクショナリ一つを引数にして、キーを引数名にした方が、設計意図にあってるかものしれない

789
デフォルトの名無しさん (ワッチョイ a317-4SR0)[sage]   投稿日:2017/02/07 23:35:58  ID:vFUY1Q6g0.n
柔軟性が高過ぎるのも考えものだね
ライブラリ毎に流儀が存在したら使い辛い

790
デフォルトの名無しさん (ワッチョイ ff93-4SR0)[sage]   投稿日:2017/02/08 00:37:17  ID:wuN4GLLw0.n
>787
それホント
リファクタリングアシスト早く欲しい
ちょっとした変数名、関数名の変更でもアシスト無いと億劫でつい放置しちゃう

791
デフォルトの名無しさん (スフッ Sd52-S0So)[sage]   投稿日:2017/02/09 19:29:33  ID:bGGm+Vsdd.n
あとクラス図生成機能欲しい
XCodeでもdoxygenでもいいからさ

792
デフォルトの名無しさん (ワッチョイ 9293-S0So)[sage]   投稿日:2017/02/11 08:39:06  ID:4V1/h4XS0.n
オムニグラフってswiftのクラス図作成に対応してるの?
誰か使ってない?

793
デフォルトの名無しさん (ワッチョイ cf3c-S0So)[sage]   投稿日:2017/02/11 15:54:18  ID:oskBDXOt0.n(2)
プログラミング初心者で勉強のためにボタンを押したら効果音が出るという単純なアプリを作りたいんだけど難しい?
コメント4件

794
デフォルトの名無しさん (JP 0Hb3-8/DI)[]   投稿日:2017/02/11 16:26:02  ID:bfT7og+wH.n
swiftにこだわるな

795
デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)[sage]   投稿日:2017/02/11 16:38:59  ID:Edv5NWG3a.n
考えるな、感じろ

796
デフォルトの名無しさん (ワッチョイ 76ba-9CRV)[sage]   投稿日:2017/02/11 17:08:57  ID:qQmrAco80.n
聞いて感じて考えて

797
デフォルトの名無しさん (アウアウオー Sa8a-S0So)[sage]   投稿日:2017/02/11 17:19:51  ID:2PZ2/Gs1a.n
swiftは使った事ないけど、AudioPlayerクラスとかあれば、音声ファイル読み込んで、Playメソッドとかで鳴らせるはず。
iOS用の言語なら在るだろうから、簡単じゃないかな。
Windowsストアアプリで全く同じ機能作った時に簡単に作れた。

798
デフォルトの名無しさん (ササクッテロラ Spf7-uAX+)[sage]   投稿日:2017/02/11 17:47:29  ID:8E8IVrXfp.n
なんで使ったことないのにこのスレにいるのやら
いやまぁ理由は分かるんだが

>793
初心者向けのiOSアプリ開発書籍買ったら良さげ
そろそろ swift 3 に対応した本が出てるだろ

799
デフォルトの名無しさん (ワッチョイ b285-cGUq)[sage]   投稿日:2017/02/11 17:51:07  ID:ScJtra280.n
>793
C#に比べたら面倒

ボタンを配置して
swiftソースにACTIONでつないで
そこに>797のいうよう
やる感じ

ソースとして書く部分は10行もないかと

800
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/11 18:19:38  ID:ria0yk5C0.n(2)
>793
いろいろやり方あるけどAVFoundationのAVAudioPlayerを使うといいと思う
プログラミング初学者だといくつかはまりポイントあるだろうから困ったら質スレで聞けばいい

let soundURL = Bundle.main.url(forResource: “soundfile”, withExtension: "mp3")!
player = try! AVAudioPlayer(contentsOf: soundURL)
player.play()
コメント1件

801
デフォルトの名無しさん (ワッチョイ 935b-3OfB)[]   投稿日:2017/02/11 19:12:24  ID:SqFaix0v0.n
>793
import AVFoundation

@IBAction func PushButton(sender: AnyObject) {
let sound_data = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sample", ofType: "mp3")!)
var audioPlayer: AVAudioPlayer = AVAudioPlayer(contentsOfURL: sound_data, error: nil)
audioPlayer.play()
}
コメント2件

802
デフォルトの名無しさん (ワッチョイ cf3c-S0So)[sage]   投稿日:2017/02/11 21:53:00  ID:oskBDXOt0.n(2)
みんな親切にありがとう
色々と調べたらAVFoundationのAVAudioPlayer使うことになりそうだ
>800>801のコードにボタンをACTIONでつなげれば良さそうだね
コメント1件

803
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/11 22:00:59  ID:ria0yk5C0.n(2)
>801
AVAudioPlayerのインスタンスを保持しておかないと音なる前に回収される

>802
停止操作とか必要なくただビープ音的に鳴らしたいだけならSystem Sound Serviceってのもある
https://developer.apple.com/reference/audiotoolbox/system_sound_services
コメント1件

804
デフォルトの名無しさん (ワッチョイ 935b-3OfB)[]   投稿日:2017/02/12 10:06:48  ID:jCqP/Xy60.n(8)
>803
こんな感じね。

let soundIdRing:SystemSoundID = 1000 // new-mail.caf
AudioServicesPlaySystemSound(soundIdRing)

http://iphonedevwiki.net/index.php/AudioServices

805
デフォルトの名無しさん (ワッチョイ 52a6-yzHa)[sage]   投稿日:2017/02/12 17:36:05  ID:wbmA90a/0.n(5)
AffineTransformのrotateが間違ってるっぽいんだけど
もしバグなら報告したいけどやり方わからん

let scale: CGFloat = 2
let angle: CGFloat = .pi / 4

var affine = AffineTransform(scale: scale)
affine.rotate(byRadians: angle)
print(affine)
// Prints "{m11:0.707106781186548,
m12:0.707106781186547,
m21:-0.707106781186547,
m22:0.707106781186548,
tX:0.0,
tY:0.0}"

var affine2 = CGAffineTransform(scaleX: scale, y: scale)
affine2 = affine2.rotated(by: angle)
print(affine2)
// Print "CGAffineTransform(a: 1.4142135623731,
b: 1.41421356237309,
c: -1.41421356237309,
d: 1.4142135623731,
tx: 0.0,
ty: 0.0)"
コメント4件

806
デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)[sage]   投稿日:2017/02/12 17:44:34  ID:al1G+i0ka.n
AffineTransformって、どっから持ってきたの?

807
デフォルトの名無しさん (スップ Sd52-a31+)[]   投稿日:2017/02/12 18:33:13  ID:Okkscphrd.n
>805
なんで仕様も知らないのに、バグだって解るの?

808
デフォルトの名無しさん (ワッチョイ 935b-3OfB)[]   投稿日:2017/02/12 18:38:31  ID:jCqP/Xy60.n(8)
>805
var affine = AffineTransform(scale: scale)
affine.append(AffineTransform(rotationByRadians: angle))
print(affine)

809
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/12 18:39:48  ID:ashgYgUc0.n(4)
>805
バグってるぽいね
ここのReporting Bugsのところ見て報告するといいんじゃないかな
https://swift.org/contributing/

どう見ても設定値(m11とか)を読んでない
https://github.com/apple/swift/blob/1b75481ab83ee69485170cb3c446...#L168L179

810
デフォルトの名無しさん (ワッチョイ 935b-3OfB)[]   投稿日:2017/02/12 18:39:59  ID:jCqP/Xy60.n(8)
>805
ところで、API Referenceをどうやって引いてる?
API Referenceなんて見ずに、blogの情報とか、漁ってる?
コメント1件

811
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/12 18:43:54  ID:ashgYgUc0.n(4)
NSAffineTransformとInterchangableって言ってるのにこうやったら結果変わるんだからバグでしょ

var affine = NSAffineTransform(transform: AffineTransform(scale: scale))
affine.rotate(byRadians: angle)

812
デフォルトの名無しさん (ワッチョイ 935b-3OfB)[]   投稿日:2017/02/12 18:45:05  ID:jCqP/Xy60.n(8)
俺、夕飯の準備するわぁ

813
デフォルトの名無しさん (ワッチョイ 935b-3OfB)[]   投稿日:2017/02/12 19:02:44  ID:jCqP/Xy60.n(8)
俺もbugに思えてきた。

814
デフォルトの名無しさん (ワッチョイ 9b33-C9ZD)[sage]   投稿日:2017/02/12 19:45:50  ID:s4ykSwHK0.n
殺虫剤はよ

815
デフォルトの名無しさん (ワッチョイ b285-cGUq)[sage]   投稿日:2017/02/12 20:06:38  ID:/n7GcIvt0.n
mp3とかの曲の再生で
再生速度を上げたりさげたりするのは
AVAudioPlayerでできるの?
コメント1件

816
デフォルトの名無しさん (ワッチョイ 935b-3OfB)[]   投稿日:2017/02/12 20:27:22  ID:jCqP/Xy60.n(8)
http://kyoshiaki.hatenablog.com/entry/2016/01/24/125641

ここ見ると
swiftコマンドを作るのに2hr位かかるって!ただし、プロセスを1に限定してメモリ不足を回避しているので、プロセスを4にする事で高速化できるかも。多分素直に4倍高速になる。

817
デフォルトの名無しさん (ワッチョイ 935b-3OfB)[]   投稿日:2017/02/12 20:28:28  ID:jCqP/Xy60.n(8)
>815
var rate: Float
The audio player’s playback rate.

ってかまじAPI Referenceみないの?

818
デフォルトの名無しさん (ワッチョイ 935b-3OfB)[]   投稿日:2017/02/12 20:55:59  ID:jCqP/Xy60.n(8)
Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)

この本超気になってる。24日(金)までデカイ本屋に行けそうに無い。
田舎住まいなもんで。

どうしよう、中身見ないでAmazonで注文してみっか!

819
デフォルトの名無しさん (ワッチョイ 52a6-yzHa)[sage]   投稿日:2017/02/12 21:30:20  ID:wbmA90a/0.n(5)
申し訳ないAffineTransformはiOSにはなかった
macOSの方です
バグレポートしようとしたらJiraってやつのログイン画面が出てきて詰んだ
コメント1件

820
デフォルトの名無しさん (ワッチョイ 52a6-yzHa)[sage]   投稿日:2017/02/12 21:39:30  ID:wbmA90a/0.n(5)
>810
基本的にはXCodeでクラス名をコマンドキー押しながらクリックしてる
それでわからなかったらgoogleしてる
コメント1件

821
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/12 22:11:58  ID:ashgYgUc0.n(4)
>819
アカウント作成してバグレポートを上げようよ
結構クリティカルだと思うし世界中のOSX開発者が助かるよ
ついでにテストコードも追加か修正してプルリクエスト上げるといいと思う

affinetransformで検索してもissueは上がってない
https://bugs.swift.org/issues/?jql=text%20~%20";affinetransform"

Openradarに似たようなのあったけど中身ちょっと違う
https://openradar.appspot.com/27793851

822
デフォルトの名無しさん (ワッチョイ 52a6-yzHa)[sage]   投稿日:2017/02/12 22:38:10  ID:wbmA90a/0.n(5)
>820
頑張ってみる
本当はgithubでプルリクエストしたかったけどswiftコマンドつくるの失敗に終わった
http://swift.orgにWifi(itscom)からだとアクセスできない助けて
携帯からなら繋がる

823
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/12 23:24:37  ID:ashgYgUc0.n(4)
swiftコマンドとかはすでにあるやつ(Xcodeの最新版の)を使えばいいんでは?
↓swift-corelibs-foundationをクローンしてFoundationだけビルドしてる例
http://dev.iachieved.it/iachievedit/compiling-open-source-swift-found...
コメント1件

824
デフォルトの名無しさん (ワッチョイ 52a6-yzHa)[sage]   投稿日:2017/02/12 23:42:42  ID:wbmA90a/0.n(5)
>823
おーーそんな方法があるのか
ありがとうございます

825
デフォルトの名無しさん (ワッチョイ 932b-yzHa)[sage]   投稿日:2017/02/13 09:03:20  ID:s7YAQc1O0.n(2)
NSとCGで挙動が違うのは正規仕様なんでは?
Class NSAffineTransform と Struct AffineTransform がInterchangableなのであって
Class NSAffineTransform と Class CGAffineTransform が互換あるとは言ってないような...
非publicなメンバの値まで一致させないといけない理由はないと思うんだ
コメント1件

826
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 09:32:07  ID:2bWgE/rs0.n(11)
>825
仕様が曖昧なので、bugっぽい動作をしている。仕様変更と同時に、rotateメソッドの実装の変更をrequestした方が良いと思う。
Struct AffineTransformのfunc rotate(byRadians: CGFloat)メソッドの仕様は、

Mutates an affine transformation matrix from a rotation value (angle α in radians).

変換行列を書き換えるってのが仕様なんだけど、その書き換え方については言及していない。

affineオブジェクトには行列Sが入っているとする。rotateメソッドでの書き換え方はは2通りある。
1. 行列Sx行列Rで書き換える
2. 行列Sは捨てて、新規に行列Rで書き換える

rotateの動作は2.なんだけど、1.が期待する動作だ。2.の動作が欲しければコンストラクタinit:rotateByRadiansを使えばいいワケだから。

827
デフォルトの名無しさん (ワッチョイ 932b-yzHa)[sage]   投稿日:2017/02/13 09:46:33  ID:s7YAQc1O0.n(2)
> 仕様変更と同時に、rotateメソッドの実装の変更をrequestした方が良い
そんな馬鹿なw従来この仕様で作って来たソフトがてんやわんやになるわ
いやまぁApple様がそう言うなら仰せの通りにって直すだけだけど

要はNS, CGの互換性はどうでもよくて
AffineTransformの仕様/実装が明記されてなくて気分悪いからバグ報告出そうぜってことか
僕が考えた最強のAffineTransformの仕様/実装が受け入れられるのかねぇ
コメント1件

828
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 09:56:45  ID:2bWgE/rs0.n(11)
>827
AffineTransformはごく最近に導入されたので、仕様変更することでの混乱はまだ少ない。
Swift3.1, Swift4へとこの変な仕様が受け継がれていくのを防ぐのが得策だと思うなぁ。

829
デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)[sage]   投稿日:2017/02/13 10:11:14  ID:LkG0cYl2a.n
俺はもこれはバグだと思うわ
仕様だとしたら一貫性が無さすぎるし、利用者もそんな挙動は期待してないでしょ

tlanslateメソッドもscaleメソッドも、元の値を反映して更新かけるのに
rotateメソッドだけ、m11〜m22は元の値を破棄して、tX, tYは維持するってのが仕様だとしたら気持ち悪すぎる

830
デフォルトの名無しさん (ワッチョイ 173c-cGUq)[sage]   投稿日:2017/02/13 10:14:16  ID:+QLG4LyN0.n(4)
https://github.com/apple/swift/blob/master/stdlib/public/SDK/Fou...#L168

appendしてくれる方がいいと思う

public mutating func rotate(byRadians angle: CGFloat) {
  append(AffineTransform(rotationByRadians:angle))
}
コメント2件

831
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 10:20:48  ID:2bWgE/rs0.n(11)
>830
AffineTransformの初期値は単位行列だから、それで良いかも。

832
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 10:21:40  ID:2bWgE/rs0.n(11)
>830
いや、メソッド呼び出しにはコストがかかるから、m11, m12…とかの値をつかって、ちゃんと計算して欲しい。

833
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 10:37:34  ID:2bWgE/rs0.n(11)
AffineTransform.swiftをみてるけど、

Mutates an affine transformation matrix
ってコメントと
Creates an affine transformation matrix
っていうコメントが出てくる。

Muattesってのは、行列をappendするっていう意味で使ってるんじゃないかなぁ。

834
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 11:00:26  ID:2bWgE/rs0.n(11)
Swift.orgにあるSwift3.1のドキュメントをみたら、Indexable, IndexableBaseプロトコルが無くなってる。Collectionプロトコルも変更ありそう。

835
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 11:21:40  ID:2bWgE/rs0.n(11)
疑問があります。

ジェネリックなclassを定義する時<T>とかって型パラメータを記載します。
たとえば
class GeoPoint<T> {

}
ジェネリックなprotocolの定義では型パラメータ(付属型)をこんな具合に記述します。
protocol GeoPoint {
associatedtype T

}
なんで
protocol GeoPoint<T> {
}
って記述方法にならなかったんでしょう?
コメント1件

836
デフォルトの名無しさん (ワッチョイ 173c-cGUq)[sage]   投稿日:2017/02/13 14:12:54  ID:+QLG4LyN0.n(4)
>835
付属型が先にあって、ジェネリクスは後から実装されたため
手遅れだった

https://github.com/apple/swift/blob/master/docs/GenericsManifest...
コメント1件

837
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 14:45:06  ID:2bWgE/rs0.n(11)
>836
THX!

Generic protocols

One of the most commonly requested features is the ability to parameterize protocols themselves.
これこれ!俺もコレが欲しかった!
protocol ConstructibleFromValue<T> {
init(_ value: T)
}
こうすると、構造体Realに対して2種類のinitの実装を求める事ができる。
これの何が問題なんだ?
struct Real { ... }
extension Real : ConstructibleFrom<Float> {
init(_ value: Float) { ... }
}
extension Real : ConstructibleFrom<Double> {
init(_ value: Double) { ... }
}
コメント1件

838
デフォルトの名無しさん (ワッチョイ 52a6-yzHa)[sage]   投稿日:2017/02/13 15:04:45  ID:E5GyABVO0.n
AffineTransformのやつ一応バグレポート出した
英語できなすぎてちゃんと伝わるかはわからん
コメント4件

839
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 15:09:24  ID:2bWgE/rs0.n(11)
>838
あんたは、偉い!

840
デフォルトの名無しさん (ワッチョイ f2c9-3OfB)[sage]   投稿日:2017/02/13 15:19:29  ID:HAPf6MFC0.n(2)
>837
associated typeは型の関係性を記述するもの、type parameterは型を具体化されるためのもので、そもそも目的が違うってことでしょ

841
デフォルトの名無しさん (ササクッテロリ Spf7-v7A7)[sage]   投稿日:2017/02/13 15:28:56  ID:M5UvUgvDp.n(2)
包括できるだろうし、破棄変更が論外なワケでもなし
こっちのPRを誰か、、、

842
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/13 16:16:43  ID:tn7uWAuX0.n
>838
乙! 全世界が救われた
2回rotateさせるテストケースがあれば防げたろうに
mutaing funcはバグりやすいいい例かも

843
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 16:35:02  ID:2bWgE/rs0.n(11)
>838
画像やBezierPathとか使わない人には、何のことやら判らんかもね!

844
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/13 17:09:58  ID:2bWgE/rs0.n(11)
SwiftのBug Reportサイトみてると面白いなぁ。
Report件数は徐々に増えている。ここ90日間を見ると。

単に関心を集めている事を示しているのか、bugが収束していかないのか、どっち?

845
デフォルトの名無しさん (ササクッテロリ Spf7-v7A7)[sage]   投稿日:2017/02/13 17:13:54  ID:M5UvUgvDp.n(2)
年末年始のバケーションが終わって仕事始めただけ説

846
デフォルトの名無しさん (ワッチョイ 173c-cGUq)[sage]   投稿日:2017/02/13 18:25:38  ID:+QLG4LyN0.n(4)
protocol Point { associatedtype T }

プロトコルを受け取ることは出来ても
func f<P>(_ p:P) where P:Point, P.T == Int { }

プロトコルで返せないし保持も出来ない
func f() -> Point<Float> { ... }

なのでSequenceでは
suffix(...) -> AnySequence<Element> のように
オーバーライド出来るようType Eraseのstructで実装を隠すか

lazy: LazySequence<Self> のように開き直って
ラップされてる型すら丸出しで返している
AnyLazySequence<Element>ですらない

今後もこれで行くのだろう
コメント1件

847
デフォルトの名無しさん (ワッチョイ f2c9-3OfB)[sage]   投稿日:2017/02/13 19:29:14  ID:HAPf6MFC0.n(2)
それはGenerics ManifestoのGeneralized existentialsに書いてることじゃないの
Any<Point where .T == Float>って書けるようにするんでしょ
コメント1件

848
デフォルトの名無しさん (ワッチョイ 935b-3OfB)[]   投稿日:2017/02/13 21:21:52  ID:MyT3Jhih0.n
>846
型消去なんて初めて知った。
VBAのVariant型みたいなクラス、構造体を作るんだって。

849
デフォルトの名無しさん (ワッチョイ b7bd-yzHa)[sage]   投稿日:2017/02/13 22:41:44  ID:6dmT0k850.n
Sequence周りって3.0 betaの頃にコロッコロ仕変してた悪夢があるな
そんな根幹I/Fを何度も変えるなと当時頭痛くなったわw
仕様破壊変更がある5.0までにまだまだ変わりそう
コメント1件

850
デフォルトの名無しさん (ワッチョイ 173c-cGUq)[sage]   投稿日:2017/02/13 23:16:42  ID:+QLG4LyN0.n(4)
>847
Move where clause to end of declaration(SE-0081)が決定済みなので
その書き方は将来的にも無くなってる

なので実装されても直の型でなくGeneric Type Aliasesを挟んでいく方向になるんじゃないかな
typealias AnyPoint<T> = Any<Point> where .T == T みたいな

例えそれでも _boxを抱えたstruct が消滅するならかなりすっきりするけど

851
デフォルトの名無しさん (ワッチョイ 9293-S0So)[sage]   投稿日:2017/02/13 23:30:02  ID:yy8XR/E60.n
>838
乙々、
アフィン変換使わないから詳細はりかいできなかったけど
放置せずキチンとレポートするのは素晴らしい

852
デフォルトの名無しさん (ワッチョイ 9b33-C9ZD)[sage]   投稿日:2017/02/14 08:13:19  ID:G4PVI11K0.n
さすがSwift!!!
Swift最高!!!
コメント1件

853
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/14 08:39:20  ID:oIIhH5jL0.n(4)
>849
独自でIteratorを実装する人にしか影響ないんちゃう?
UIKit使ってiOSアプリ作る人の中で、独自のデータデータ構造を定義、実装する人なんて少ないと思う。

854
デフォルトの名無しさん (スプッッ Sd72-NOvL)[sage]   投稿日:2017/02/14 09:07:42  ID:15O9OsV1d.n(2)
>852
次世代言語のなかでは最も簡単で誰でも使えるとても良い言語だと思う
コメント1件

855
デフォルトの名無しさん (スップ Sd72-ogAn)[sage]   投稿日:2017/02/14 09:10:39  ID:o1Hy+Q1/d.n
なんたってモダンだからなw

856
デフォルトの名無しさん (ワッチョイ b7bd-yzHa)[sage]   投稿日:2017/02/14 09:12:13  ID:j+ud4G/F0.n
上層レイヤーを扱う分には影響ないと思うんだけど、C <-> Swiftのラッパー層あたりは結構困る
macOS, iOS専用言語じゃないという建前を現実にするためその辺の層を作ってると
メジャーバージョンアップの根幹I/Fのライブラリ仕様変更はいつも笑えるほどにアレなの...
StringやRaw Memoryも同じく未だに仕変が多いような

確かにそれで困ってるアホはSwiftに夢見る少数だから笑いながら扱っている:)

857
デフォルトの名無しさん (ササクッテロラ Spf7-CouY)[sage]   投稿日:2017/02/14 09:14:30  ID:EC+U4L2lp.n(2)
関数内でのスタティック変数の宣言と、VBのwith〜end with的な構文があると嬉しいんだけど

858
デフォルトの名無しさん (アウアウエー Sa4a-CouY)[sage]   投稿日:2017/02/14 09:14:48  ID:nwUJp3gZa.n
関数内でのスタティック変数の宣言と、VBのwith〜end with的な構文があると嬉しいんだけど
コメント1件

859
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/14 09:47:42  ID:oIIhH5jL0.n(4)
>854
だれでも簡単に扱えない、C++みたいな運命を辿りかねない。
Standard Libraryの充実って所に力点を置き過ぎるのは、初心者に
言語使用デカすぎ!って印象を抱かせてしまう。

C++が2011年まで放置されたような事になっちゃうよ。
コメント2件

860
デフォルトの名無しさん (スプッッ Sd72-NOvL)[sage]   投稿日:2017/02/14 10:03:21  ID:15O9OsV1d.n(2)
>859
そこを批判するのはどうかとおもうね
いずれにしても必要なこと

861
デフォルトの名無しさん (ワッチョイ 173c-cGUq)[sage]   投稿日:2017/02/14 10:58:05  ID:2PqESwAW0.n(2)
>859
遅れはしたが別に放置はされてない

862
デフォルトの名無しさん (JP 0H72-cGUq)[sage]   投稿日:2017/02/14 12:09:10  ID:OJnhURbNH.n
C++11で安定したのでは?
コメント1件

863
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/14 14:11:53  ID:gfvqdCIF0.n(4)
>858
>関数内でのスタティック変数の宣言

スタティック変数を関数内で宣言したいってどういうケース?
コメント1件

864
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/14 14:14:19  ID:oIIhH5jL0.n(4)
>863
関数が何回呼ばれたかをカウントするために、static varしたいんじゃないか?

865
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/14 14:23:42  ID:oIIhH5jL0.n(4)
var cnt = 0
let f = { cnt += 1; print("cnt = ¥(cnt)") }
f()
f()
f()
closure使えば、何回呼ばれたかは、カント可能なんだが、これじゃダメなのか?
コメント1件

866
デフォルトの名無しさん (ワッチョイ f2c9-3OfB)[sage]   投稿日:2017/02/14 14:23:49  ID:LIVGV7l10.n(3)
クロージャでいいんじゃない

867
デフォルトの名無しさん (ササクッテロラ Spf7-CouY)[sage]   投稿日:2017/02/14 14:36:43  ID:EC+U4L2lp.n(2)
前回の呼ばれた時の値を保持しときたいならクロージャを用意するまでもなく別にメンバ変数でもいいんだけど、関数内で
static var count: Int
って宣言するだけで済めば便利だなと思っただけだよ
コメント1件

868
デフォルトの名無しさん (ササクッテロリ Spf7-v7A7)[sage]   投稿日:2017/02/14 15:12:32  ID:W2b/azRYp.n
関数内staticの必要性は分からんけど>865はダサいと思った
出来ることとスマートであることは別だよね

869
デフォルトの名無しさん (ワッチョイ f2c9-3OfB)[sage]   投稿日:2017/02/14 16:00:12  ID:LIVGV7l10.n(3)
お前がそう思うんなら(ry

870
デフォルトの名無しさん (スフッ Sd52-S0So)[sage]   投稿日:2017/02/14 18:43:58  ID:qIbz53rXd.n
>862
ときどきでいいからc++17の事も思い出してあげて

871
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/14 19:45:15  ID:gfvqdCIF0.n(4)
そういう用途かー
カウント処理をラップする関数を書いてそれにカウントしたい関数を渡したいところ
でもあらゆる型の関数(クロージャ)でも受け取って引数付きで実行するのってSwiftでできるんだっけ?
コメント1件

872
デフォルトの名無しさん (ワッチョイ f2c9-3OfB)[sage]   投稿日:2017/02/14 22:04:56  ID:LIVGV7l10.n(3)
>871
https://gist.github.com/JadenGeller/f8ad2574590f956fee92
古いから何箇所か手直しいるけどこんな感じで出来なくはないけど
コメント1件

873
デフォルトの名無しさん (ワッチョイ 173c-cGUq)[sage]   投稿日:2017/02/14 22:31:11  ID:2PqESwAW0.n(2)
任意の多引数には言語仕様的に対応出来ないから
これと同じようなやり方で足りそうな所まで並べるしかない
https://github.com/thoughtbot/Curry/blob/master/Source/Curry.swi...
コメント2件

874
デフォルトの名無しさん (ブーイモ MM52-mpSg)[sage]   投稿日:2017/02/14 22:54:22  ID:+bEgvAQFM.n
>867
リセットするときどうすんの?
あまりに用途が限られるのでは…

875
デフォルトの名無しさん (アウアウエー Sa4a-CouY)[sage]   投稿日:2017/02/14 23:03:44  ID:PDBDanqwa.n(2)
ん? リセット? 普通に関数内で
count = 0
でダメ?

Obj-Cで使う時と同じ
コメント1件

876
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/14 23:20:04  ID:gfvqdCIF0.n(4)
>872

型を渡して、doAfterでラップして、callで呼ぶっていう3ステップはちときついね
前2つはカウント専用にすれば1ステップになるけどcallじゃなくカウント機能のついた関数を返してくれてそれを実行したいところ
あと引数の数の違いはタプルになるから問題なさそうだけど高階関数にも使えるんだろうか?

とりあえずSwift3で動くバージョン上げといた
https://gist.github.com/anonymous/ff4440ac74c87d451502984d3125b095
コメント1件

877
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/14 23:20:32  ID:gfvqdCIF0.n(4)
>873
これは辛い

878
デフォルトの名無しさん (ブーイモ MM52-mpSg)[sage]   投稿日:2017/02/14 23:26:04  ID:y+v+ZN8qM.n
>875
それを誰が指示すんの?
内部のstatic変数を初期化する引数を追加して使用者に指定してもらうの?
コメント1件


879
デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)[sage]   投稿日:2017/02/14 23:34:45  ID:PDBDanqwa.n(2)
>878
それは引数で渡すのか他の変数の状態に依存するのか関数を書く人次第でしょ
C言語のstatic変数使ったことないの? ググってみれば?

880
デフォルトの名無しさん (ワッチョイ 9b33-C9ZD)[sage]   投稿日:2017/02/15 00:01:10  ID:RQyBuwlX0.n(2)
Swift界隈ではC言語を知らない人もいるのだろう

881
デフォルトの名無しさん (ワッチョイ f2c9-3OfB)[sage]   投稿日:2017/02/15 00:05:03  ID:98yhGEhP0.n(5)
>876
ラップされた側でさらにタプルに包んで渡さないといけないのがつらいけどこれどうにかできんかな

func wrap<T, V>(_ fn: @escaping (T) -> V) -> (T) -> V {
print("¥(T.self) -> ¥(V.self)")

var counter = 0

return { (args: T) -> V in
let mirror = Mirror(reflecting: args)
let inputs = mirror.children.count == 0 ? [args] : mirror.children.map { $0.value }
let result = fn(args)
print("¥(counter): ¥(inputs) -> ¥(result)")

counter += 1

return result
}
}

func f1(a: Int, b: String) -> String { return repeatElement(b, count: a).joined() }
let f2 = wrap(f1)
f2((5, "z"))
f2((3, "abc"))

// (Int, String) -> String
// 0: [5, "z"] -> zzzzz
// 1: [3, "abc"] -> abcabcabc
コメント3件

882
デフォルトの名無しさん (ワッチョイ 173c-cGUq)[sage]   投稿日:2017/02/15 00:25:36  ID:rlmICMnW0.n
>881
http://swiftlang.ng.bluemix.net/#/repl/58a32121691eea40bd985ea3
コメント2件

883
デフォルトの名無しさん (ワッチョイ f2c9-3OfB)[sage]   投稿日:2017/02/15 00:38:51  ID:98yhGEhP0.n(5)
>882
なるほど、そうなるのか

884
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/15 01:03:41  ID:WU5+o8Pm0.n(4)
>881
>882
いいねー
ただ現状は>873と同じで引数の数でオーバーロードしておく必要があるってことだね

885
デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)[sage]   投稿日:2017/02/15 01:43:26  ID:5Sts5aosa.n
まぁ、苦労した割にはさほど実用性はないし、何より保守性が悪すぎるよね
static変数って別にカウント用途だけじゃなくて、例えば前回の状態を保持しときたい、だけどその状態を、メンバ変数として持つより、その関数だけに局所化しときたいし、クロージャを使うほど大仰でもないような時に便利なわけで
上の例みたいに回数をカウントするとか、前回の処理の成否を保持しといてリトライの制御に使ったり、メッセージ内容(何回失敗しました..)を変えたりとか、線の描画なんかで前回のクリック位置を覚えときたいとか、いろいろあるんだけど...
一番のメリットは、手軽に使えることだと思う。多用はいかんけど。

886
デフォルトの名無しさん (ワッチョイ f2c9-3OfB)[sage]   投稿日:2017/02/15 03:34:27  ID:98yhGEhP0.n(5)
いや、そもそもメンバ変数にしたくない理由が分からんけどな
コメント1件

887
デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)[]   投稿日:2017/02/15 09:20:48  ID:ItYgKVGf0.n
>881
THX a lot.

けどclosureを引数にとって、closureを返す関数の呼び出しってのは、頭クラクラする。

888
デフォルトの名無しさん (ササクッテロリ Spf7-v7A7)[sage]   投稿日:2017/02/15 10:01:52  ID:er7cKMeEp.n
クロージャーにtypealias使えば少しは緩和されるかな
多用するものじゃないけども

889
デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)[sage]   投稿日:2017/02/15 10:19:20  ID:cA9nAL4ta.n
>886
メンバ変数だと他のメソッドから意図せず変更される可能性がある
コメント1件

890
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/15 15:21:51  ID:WU5+o8Pm0.n(4)
メンバ変数ってインスタンス変数のことで
スタティック変数ってクラス変数のことでしょ?
クロージャ使う以外に他からの変更を防ぐ手段ってあるのかな
関数のメタデータに好きな値を設定する手段でもあればできるかもだけど
コメント1件

891
デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)[sage]   投稿日:2017/02/15 15:40:42  ID:nbc++MSva.n(3)
>890
上で話してるstatic変数は、クラス変数とはちょっと違う
C言語の関数内static変数のことで、性質的にはクラス変数に近いけど基本的にその関数内でしかアクセスできない
C言語由来のC++やObj-Cのメソッド内にも定義できる
コメント2件

892
デフォルトの名無しさん (ワッチョイ f2c9-3OfB)[sage]   投稿日:2017/02/15 15:54:15  ID:98yhGEhP0.n(5)
>889
他のメソッドに触られたくないとなったときに、クラスを分割するんじゃなくてstaticローカル変数でメソッドに閉じ込めたいという状況がわからない
オブジェクト指向的にはそのクラスが適切な凝集度に収まってないってことでしょ
staticローカル変数とかクロージャで状態を関数に閉じ込めてしまうとテストも難しくなる問題もある
コメント1件

893
デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)[sage]   投稿日:2017/02/15 16:13:28  ID:nbc++MSva.n(3)
>892
状況って改まって言われてもあれだけど、クラスの属性とするほどもない一時的な値を保持しときたい時とかかなぁ

例えば整数の並びを読み込みながら、直前に読み込んだ値との差を表示する処理があったとして、
func printDiffernce() {
 static var prevValue: Int

 if let curValue = self.getNextValue() {
  print("difference = ¥(curValue - prevValue)")
  prevValue = curValue
 } else {
  prevValue = 0
 }
}

みたいな書き方ができれば便利じゃね?
個人的にSwiftにはスクリプト言語的な手軽さも期待してるんで、やっつけ仕事とかだと重宝すると思うんだけどね
コメント1件

894
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/15 17:54:12  ID:WU5+o8Pm0.n(4)
>891
自分が主に使ってきた言語でそういうのなかったから使ったことなかったわ
C++とObj-Cを除くとCのstatic local変数が実装されてるのはVB.NETくらいみたいね

895
デフォルトの名無しさん (ワッチョイ f23c-DoU+)[sage]   投稿日:2017/02/15 18:05:13  ID:WU5+o8Pm0.n(4)
>893
こういうので我慢してはどうだろうか?

func printDiffernce() {
struct Prev { static var value: Int? }

let curValue = getNextValue()
if let prevValue = Prev.value {
print("difference = ¥(curValue - prevValue)")
Prev.value = curValue
} else {
Prev.value = curValue
}
}

自分ならインスタンス変数使うけど
コメント1件

896
デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)[sage]   投稿日:2017/02/15 18:26:07  ID:nbc++MSva.n(3)
>895
一番お手軽な代替だけと無理やり感は否めないね
自分もそこまでやるなら素直にインスタンス変数使うわ

897
デフォルトの名無しさん (ワッチョイ f2c9-3OfB)[sage]   投稿日:2017/02/15 18:38:47  ID:98yhGEhP0.n(5)
struct S {
func foo() {
struct T { static var count = 0 }
print(T.count)
T.count += 1
}
}

let s1 = S()
s1.foo()
s1.foo()
s1.foo()

let s2 = S()
s2.foo()
s2.foo()
s2.foo()

これで"0 1 2 0 1 2"を期待するか"0 1 2 3 4 5"を期待するか
読みやすいと思うか読みにくいと思うか
人によって違うだろうしstaticローカル変数があったとしても混乱の元でしかないようなきがする
コメント1件

898
デフォルトの名無しさん (スフッ Sd52-S0So)[sage]   投稿日:2017/02/15 18:47:02  ID:ngDNeO3Hd.n
>891
インラインCで書けないの?
コメント1件

899
デフォルトの名無しさん (スップ Sd52-ogAn)[sage]   投稿日:2017/02/15 18:57:43  ID:Ngm4n4Trd.n
>898
without Cなモダンな言語SwiftでインラインのCなんか許されるわけねぇだろ

900
デフォルトの名無しさん (ササクッテロラ Spf7-C9ZD)[sage]   投稿日:2017/02/15 19:48:47  ID:Whvl4rVxp.n
>897
そこは仕様を理解した上での使用ならいいのではという気がする
実際C++での振る舞いも同じだし、staticなんだからそれでいいだろうと
今までC言語で使ってた人には違和感はないでしょ
まぁSwiftは、曖昧でわかりにくい挙動は廃止の方向で動いてるっぽいからSwiftに組み込まれる可能性は低いだろうけど

901
デフォルトの名無しさん (ワッチョイ 9b33-ogAn)[sage]   投稿日:2017/02/15 19:57:33  ID:RQyBuwlX0.n(2)
至高の言語Swift

902
デフォルトの名無しさん (スフッ Sd7f-yXFx)[sage]   投稿日:2017/02/16 09:38:14  ID:y1APn5Gud.n(2)
ま、関数がローカルでスタティックな変数なんて持つと
再入不能になって、並列化が困難になるから
モダンじゃないよな
コメント1件

903
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/16 10:04:42  ID:4SRfHRZm0.n(6)
>902
なるほどぉ。

けど、そこはプログラマーを信頼して、static varできるfuncを許容するってのも選択肢かも。

904
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/16 10:21:22  ID:4SRfHRZm0.n(6)
SwiftSR-3941
AffineTransform.rotate(byRadians:) can be wrong

まったくActivityが無いなぁ。まずいなぁ。

905
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/16 11:17:17  ID:3C0NPS0ia.n
関数内スタティック変数が危険で、インスタンス変数やクラス変数は安全って理論が分からん
インスンタンス間で共有される点では危険かもしれんが、それはクラス変数も同じだろ
スコープの認識で誤解を生む可能性が高いという点では同意するが
コメント1件

906
デフォルトの名無しさん (スフッ Sd7f-yXFx)[sage]   投稿日:2017/02/16 12:10:38  ID:y1APn5Gud.n(2)
>905
そういった話はPOSIX4にでも言ってくれ
何年も前に結論が出てるから遅きに失した感はあるけど
コメント1件

907
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/16 12:40:38  ID:4SRfHRZm0.n(6)
>906
POSIXってなんて発音してる?
ポジックス
ホジックス
ポシックス
どちらでしょう?

どこぞでJavaScriptをジャバスクって読んで炎上してました。
コメント1件

908
デフォルトの名無しさん (スップ Sd7f-PET2)[sage]   投稿日:2017/02/16 13:30:20  ID:QNa2K6exd.n
>907
どう読んでもホジックスねーだろ
勝手にホジッてろ

909
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/16 14:04:26  ID:4SRfHRZm0.n(6)
じゃぁC++はどう発音すべきでしょう。
ちなみに、僕は
シィープラプラ
って言ってました。

やっぱり
シィープラスプラス
って言うべきでしょうかねぇ?

910
デフォルトの名無しさん (JP 0H1f-3aUF)[sage]   投稿日:2017/02/16 14:20:18  ID:1VBkG9E6H.n(2)
たすたす
コメント1件

911
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/16 14:39:47  ID:4SRfHRZm0.n(6)
>910
外人さんの発音を真似る事にします。
C++ = シープラスプラッス
JavaScript = ジャバスクリット
Swift = スイット

どうやらp, fって発音しないのかな?
コメント1件

912
デフォルトの名無しさん (ワッチョイ 3b3c-fFgi)[sage]   投稿日:2017/02/16 15:20:54  ID:dgGiwFPU0.n
>911
p発音しないんか!

Pascal = アスカル
Python = ワイソン
コメント1件

913
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/16 15:41:59  ID:4SRfHRZm0.n(6)
>912
母音のあとのpは発音しない。
ip -> i
コメント1件

914
デフォルトの名無しさん (ワッチョイ 0b4e-N9BQ)[sage]   投稿日:2017/02/16 15:46:25  ID:fb6O/m5X0.n
プラッチック

915
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/16 15:48:25  ID:zitEQFpsa.n

916
デフォルトの名無しさん (JP 0H1f-3aUF)[sage]   投稿日:2017/02/16 16:47:34  ID:1VBkG9E6H.n(2)
apfel

917
デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)[sage]   投稿日:2017/02/16 16:56:45  ID:Om/f1qwp0.n
>913
そんなルールないでしょ
文末だったり次が子音の時に唇を閉じるだけで空気を吐き出さない人もいるから
それが音として聞き取れてないだけだと思うぞ
https://www.youtube.com/watch?v=JPUr5MgeDHM&;start=103

918
デフォルトの名無しさん (ワッチョイ 5f85-eq+O)[sage]   投稿日:2017/02/16 16:58:53  ID:Cc78fshD0.n
外人外人って
おまえらどこの国の発音を想定してるの?

919
デフォルトの名無しさん (ワッチョイ 3b3c-Dr1I)[sage]   投稿日:2017/02/16 18:11:32  ID:164TOoVr0.n
ジパング

920
デフォルトの名無しさん (ワッチョイ eb33-ykbm)[sage]   投稿日:2017/02/17 03:44:46  ID:7wkNsQja0.n(2)
至高の言語Swift

921
デフォルトの名無しさん (ササクッテロリ Sp9f-X9Uf)[sage]   投稿日:2017/02/17 08:02:46  ID:3FtIr36Jp.n
究極の言語Objective-C

922
デフォルトの名無しさん (スプッッ Sd7f-PET2)[sage]   投稿日:2017/02/17 09:53:10  ID:aT4GW3VEd.n(2)
極上の言語swift

923
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/17 10:02:21  ID:Akp7bstt0.n(6)
100個のInt要素を格納した配列2個の内積を計算するとします。
let a: [Int] = Array(repeating: 1, count: 100)
let b: [Int] = Array(repeating: 10, count: 100)
a, bの内積をFoundationモジュールのThreadクラスを使って4つのスレッドを生成して計算するコードは、どんな具合になるのでしょう?

どなたか、適当なサンプルを紹介してください。

924
デフォルトの名無しさん (ササクッテロラ Sp9f-BRgT)[sage]   投稿日:2017/02/17 10:31:37  ID:0upCUQyEp.n
丸投げすんな
まず自分で考えたコードを示してどこで躓いてるかを質問しろ
コメント1件

925
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/17 11:17:40  ID:Akp7bstt0.n(6)
>924
いや、ごもっとも。
DispatchQueueやOperationを使った例は見つかるのに、Threadを使った例が見つからないんですよ。

前者2つは、生成スレッドの数をSystem側が制御するのが気にくわないです。
そこでPOSIX Threadを使いたいのですが、どうやってjoinするのか?
API Documentを見てもよく判らずお尋ねしたしだいです。
コメント2件

926
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/17 11:19:41  ID:Akp7bstt0.n(6)
もうすぐ安価の8Core CPUが販売(AMD Ryzen to be launched in 2 March)されるのに、Threadの数をSystem側に制御されちゃうのも嫌だなぁと思って。

927
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/17 11:27:15  ID:EBBNx7lQa.n

928
デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)[sage]   投稿日:2017/02/17 11:43:43  ID:Ev3rlX/U0.n(2)
vDSP使おう

929
デフォルトの名無しさん (ササクッテロリ Sp9f-X9Uf)[sage]   投稿日:2017/02/17 12:41:49  ID:zNlklL+qp.n
>925がgoを学んだら発狂しそうww
イマドキSystem任せにしない方が不安定だろうに、大学の課題か何かかな
コメント1件

930
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/17 13:16:03  ID:Akp7bstt0.n(6)
>929
RubyのコードをSwiftに移植しようとしてます。

Mutexを使ってクリティカルセクションを設定したり、走り始めたThreadを待ち合わせるのはSwiftのFoundationモジュールのThreadクラスでどうするのかなぁ?と
思ってお尋ねした次第です。
コメント1件

931
デフォルトの名無しさん (スプッッ Sd7f-PET2)[sage]   投稿日:2017/02/17 13:18:54  ID:aT4GW3VEd.n(2)
老がいってやつかにゃ
コメント1件

932
デフォルトの名無しさん (スフッ Sd7f-yXFx)[sage]   投稿日:2017/02/17 13:27:17  ID:g7uCN/FDd.n
>925
ThreadクラスもPスレッドも非推奨だから仕方がない
まずはOpeationQueueあたり使って見たら?
もちろん使用するスレッド数も制御できるよ

推奨の方法でどうしてもダメな理由が出てきてから
ThreadクラスやPスレッドに手を出したらいい
コメント1件

933
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/17 13:33:47  ID:zATlaFwqa.n
>930

>927の29ページ読んだか?
コメント1件

934
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/17 14:20:38  ID:Akp7bstt0.n(6)
>932
>933

THX a lot
色々読んで、修行します。

935
デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)[]   投稿日:2017/02/17 14:28:58  ID:Akp7bstt0.n(6)
>931
はい、大当たり。
老害エンジニアです。

936
デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)[sage]   投稿日:2017/02/17 18:25:26  ID:Ev3rlX/U0.n(2)

937
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/17 19:22:45  ID:FaJoTYRf0.n(2)
Application Binary Interface (ABI)
の安定化が最優先課題だって。

938
デフォルトの名無しさん (ワッチョイ 6b7b-ea4t)[sage]   投稿日:2017/02/17 19:26:10  ID:nctM8eJ40.n
ruby扱ってるなら30行くか行かないかの小僧だろ・・・
老害に至る以前の世間知らずだにゃー

939
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/17 21:58:24  ID:FaJoTYRf0.n(2)
String Processing For Swift 4
Swift4ではString周りが大改革されるって。

現状のIndexを使った文字列アクセスは、なんかしっくりこなかったんだよなぁ。直感的では無かったし、やっぱり文字列は整数を使ってアクセスできなきゃダメだワサァ。

940
デフォルトの名無しさん (ワッチョイ fb17-yXFx)[sage]   投稿日:2017/02/17 22:02:19  ID:gUVhRjes0.n
仕様が落ち着いたら起こしてくれ

941
デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)[sage]   投稿日:2017/02/17 22:20:48  ID:uN4QBy3G0.n
それが彼の最期の言葉だった

942
デフォルトの名無しさん (ワッチョイ eb33-MFap)[sage]   投稿日:2017/02/17 22:39:06  ID:7wkNsQja0.n(2)
それは私の課題ではありません

943
デフォルトの名無しさん (ワッチョイ 5f3c-extS)[sage]   投稿日:2017/02/18 00:59:35  ID:OUHo6iYG0.n
文字列処理って言語の肝じゃん。
破壊的な変更入れていいものかねぇ。

944
デフォルトの名無しさん (ワッチョイ 0fba-PET2)[sage]   投稿日:2017/02/18 01:13:55  ID:3KSwEFyS0.n(2)
言語バージョン対応という仕事を作ってくれるswift

945
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/18 01:17:55  ID:rKwnwDJ5a.n
内部コードを今さらUTF16にするとか言わんよな
コメント1件

946
デフォルトの名無しさん (ワッチョイ 6b7b-ea4t)[sage]   投稿日:2017/02/18 07:40:22  ID:XfVC26Fr0.n
文字列の扱いなんてbetaから1.xの頃って半年に一回破壊変更あったし大丈夫、大丈夫
それを笑い飛ばせないSwift使いなんているわけない

947
デフォルトの名無しさん (ワッチョイ eb33-MFap)[sage]   投稿日:2017/02/18 07:51:02  ID:KOOSHa+W0.n
至高の言語Swift

948
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/18 09:32:42  ID:bxFvL8ai0.n(4)
JavaScriptも毎年変更されてるから、最近はどこも、そんな感じなんだろう。

ECMA2015, 2016, 2017

949
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/18 09:34:20  ID:bxFvL8ai0.n(4)
>945
それは無い。
Unicode界隈はUTF-8で落ち着いている。
絵文字の増加が毎年の話題で、大した話では無い。
コメント1件

950
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/18 10:20:12  ID:wNEbwMAxa.n(2)
Swiftの文字列の内部コードはユニコードスカラー値って書いてあったんだが
コメント2件

951
デフォルトの名無しさん (ワッチョイ df93-yXFx)[sage]   投稿日:2017/02/18 10:29:13  ID:CZJbBrsK0.n(2)
>950
それを言うなら文字列の内部表現を想定しちゃいけないと書いてあるだろ

NSStringを与えて作ったStrungの内部表現はNSStringになって、
そうじゃない場合内部表現はユニコードスカラーになったり、
他の文字列への参照になったりするわけだから

952
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/18 10:54:09  ID:wNEbwMAxa.n(2)
想定するも何も想定しようがないんだが

953
デフォルトの名無しさん (ワッチョイ db3c-yXFx)[sage]   投稿日:2017/02/18 11:41:47  ID:NSF889Ks0.n(2)
import UIKit
import AVFoundation

class ViewController: UIViewController,
AVAudioPlayerDelegate {

var audioPlayer:AVAudioPlayer!

@IBOutlet var button:UIButton!

override func viewDidLoad() {
super.viewDidLoad()

// 再生する audio ファイルのパスを取得
let audioPath = Bundle.main.path(forResource: "sample", ofType:"m4r")!
let audioUrl = URL(fileURLWithPath: audioPath)

// auido を再生するプレイヤーを作成する
var audioError:NSError?
do {
audioPlayer = try AVAudioPlayer
(contentsOf: audioUrl)
}
catch let error as NSError {
audioError = error
audioPlayer = nil
}
コメント2件

954
デフォルトの名無しさん (ワッチョイ db3c-yXFx)[sage]   投稿日:2017/02/18 11:44:02  ID:NSF889Ks0.n(2)
>953
// エラーが起きたとき
if let error = audioError {
print("Error \(error.localizedDescription)"
)
}
audioPlayer.delegate = self
audioPlayer.prepareToPlay ()
}
// ボタンがタップされた時の処理
@IBAction func button(_ sender: AnyObject
) {
if ( audioPlayer.isPlaying ){
audioPlayer.stop()
button.setTitle("Stop", for: UIControlState
())
}
else{
audioPlayer.play()
button.setTitle("Play", for: UIControlState
())
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
ボタンを押すと音がなるアプリを作りたくて上記のコードで実行してみたんだけど「SIGABRT」「NSInvalidArgumentException」「unrecognized selector sent to instance」
こんなエラーが出る
初心者でおかしな質問してるかもしれない
もしよかったらどこを直せばいいか教えてほしい
コメント3件

955
デフォルトの名無しさん (スップ Sd7f-MFap)[sage]   投稿日:2017/02/18 12:00:29  ID:yNmDyf4Id.n
至極の言語Swift

956
デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)[sage]   投稿日:2017/02/18 12:43:28  ID:ss3TDen/0.n(4)
SwiftのStringの内部表現はこれと決まってるわけではないが、今のところASCIIかUTF-16かNSStringのラッパー

「内部コード」が「内部表現」ではなく「何を文字とするか」ならCharacterはユニコードのextended grapheme clusterで、各種文字列操作もそれに準じるのはSwift4前後でも変わらない

>949
UTF-8で落ち着いてるというのはファイルのエンコーディングの話
ファイルのエンコーディングなら持ち回しやすさを考えてデータサイズが小さくてバイトオーダーを考慮しなくていいUTF-8が主流だし、
言語やOSの内部表現なら(サロゲートはあるが一応/昔は)固定長でUTF-32ほどは大きくないUTF-16が主流

>950
どこ?
コメント1件

957
デフォルトの名無しさん (ササクッテロラ Sp9f-ykbm)[sage]   投稿日:2017/02/18 12:54:59  ID:c9HMTA6gp.n(2)
>956

AppleのSwift本(The Swift Programming Language)に

Behind the scenes, Swift's native String type is build from Unicode scalar values.

って書いてある
コメント2件

958
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/18 13:57:57  ID:bxFvL8ai0.n(4)
>957
Either utf-8, utf-16 or even utf-32 is made from Unicode scalar values, aka Unicode Code Point.

959
デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)[sage]   投稿日:2017/02/18 13:58:35  ID:oLH7rESg0.n(3)
Swift3のStringの内部表現は_StringCoreが保持していて
ASCIIのみの場合はASCII、それ以外が含まれるとUTF16に切り替わる
NSStringはUTF16

>954
エラーが起きたらまずエラーメッセージでググれ

960
デフォルトの名無しさん (ワッチョイ eb46-MFap)[sage]   投稿日:2017/02/18 14:00:54  ID:zBLDkUJj0.n
人類史上最強のモダン言語Swift

961
デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)[sage]   投稿日:2017/02/18 14:10:33  ID:ss3TDen/0.n(4)
>957
それはたぶんユニコードスカラーリテラルのことを言ってるんじゃないの


普通のStringは実装が_StringCoreで
https://github.com/apple/swift/blob/master/stdlib/public/core/St...

_StringCoreの中のバッファは以下の3つどれかが選ばれて
public var asciiBuffer: UnsafeMutableBufferPointer<UTF8.CodeUnit>?
public var nativeBuffer: _StringBuffer?
public var cocoaBuffer: _CocoaString?

NSString由来じゃなくASCIIに収まらないなら_StringBufferが使われて、_StringBufferはUTF16
https://github.com/apple/swift/blob/master/stdlib/public/core/St...

C文字列から作る系は全部_StringBufferにデコードされる
https://github.com/apple/swift/blob/master/stdlib/public/core/CS...

StaticStringはASCIIかUTF8か単一のUnicodeScalar
https://github.com/apple/swift/blob/master/stdlib/public/core/St...
コメント2件

962
デフォルトの名無しさん (ワッチョイ dfa6-ea4t)[]   投稿日:2017/02/18 14:14:39  ID:YlQzCJd/0.n
>953
>954
ストリーボードにあなたが貼り付けたボタンを右クリックしてみて
でてきた画面の中に定義されてない関数があるはずだからそれを消せばOK
コメント1件

963
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/18 14:16:47  ID:bxFvL8ai0.n(4)
>961
あんた凄いなぁ。
俺なんか、Unsafe族が現れたら、クラクラしてきて戦意喪失。

964
デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)[sage]   投稿日:2017/02/18 15:30:42  ID:yZwtGkz90.n
>954
「unrecognized selector sent to instance」の後にそのselectorの名前が書いてあると思うからそこを修正すればいい
>962の人が書いてくれてるみたいにIBOutlet/IBActionの接続が上手くできてない(リネームしたりするとよくある)
あとどうでもいいけどPlayとStopのボタンタイトルの設定が逆

965
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/18 16:18:43  ID:wVqfoazIa.n(2)
>961
ASCII文字列に、非ASCIIキャラをinsertした後の文字列はどうなるの?

var asciiString: Sting = ...
asciiString.insert("あ", at: s.startIndex)

966
デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)[sage]   投稿日:2017/02/18 17:48:34  ID:oLH7rESg0.n(3)
UTF16になる

967
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/18 18:03:13  ID:wVqfoazIa.n(2)
で、非ASCII文字を削除したら、またUTF8に戻るの?

asciiString.remove(at: s.startIndex)

これ毎回チェックしてるとしたら結構なオーバーヘッドな気が...

968
デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)[sage]   投稿日:2017/02/18 20:08:14  ID:ss3TDen/0.n(4)
s._core.isASCII で見れるよ

969
デフォルトの名無しさん (ササクッテロラ Sp9f-ykbm)[sage]   投稿日:2017/02/18 20:49:34  ID:c9HMTA6gp.n(2)
非ASCII文字を削除した後の _core.isASCII がfalseって事は、
一旦UTF16にしたらもう、UTF8に戻さないって事?
コメント1件

970
デフォルトの名無しさん (ワッチョイ 0fba-PET2)[sage]   投稿日:2017/02/18 21:11:09  ID:3KSwEFyS0.n(2)
よくわからんポリシーやな

971
デフォルトの名無しさん (ワッチョイ df93-yXFx)[sage]   投稿日:2017/02/18 21:11:54  ID:CZJbBrsK0.n(2)
>969
実行効率を良くするために
元がASCIIならASCIIのまま、元がNSStringならNSStringのまま扱うわけであって
一度ネイティヴに変換したものを元の形式に戻す意味はないだろ?

で、そこらへんの細かいことはコンパイラとライブラリーに任せて
アプリケーションプログラマーには自分のロジック書くのに集中して欲しいから
内部表現を想定するなって事になってるんだと思うよ

972
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/18 21:50:54  ID:HBZdFR5pa.n(3)
内部表現を想定するって例えばどういう事だろ
許可されてるインフェースを通してしかアクセスできないんだから
想定しようにもできない気がするけど
コメント3件

973
デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)[sage]   投稿日:2017/02/18 22:29:50  ID:ss3TDen/0.n(4)
コピーオンライトとかでバッファを作り直すときにはasciiだけかどうかチェックして作り直すみたい

var s = "あabc" // sはutf16
s.remove(at: s.startIndex) // sはutf16のまま
var t = s // tはsと同じバッファを参照
t.remove(at: t.startIndex) // コピーオンライトが働いてtがasciiで作り直される


>972
バイト列を直接操作したいとか、utf8のファイルを読み込むときにいちいち内部表現への変換が走ってほしくないとか?
多分そういうのを想定してString Processing For Swift 4で内部表現を明示的に指定できるUTF8Stringみたいな型も使えるようにするって言ってるんだと思う
まぁ現時点ではほとんどまったく意味ないね

974
デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)[sage]   投稿日:2017/02/18 22:31:20  ID:oLH7rESg0.n(3)
>972
それは順序が逆で
想定すべきでないという設計思想がまずあって、その結果今のインターフェイスがある

ただし次は特に高速が求められるケースでは特定の内部表現を前提に出来るようになる予定

975
デフォルトの名無しさん (スフッ Sd7f-yXFx)[sage]   投稿日:2017/02/18 23:03:24  ID:KQ+hCWpkd.n(2)
>972
a...zでアルファベット全部が表現できる(無意識にascii系とかを想定、少なくともebsdicではない)

"あい"文字列の"い"を取り出すには4文字目から取り出さなきゃ(無意識にutf8を想定)

アルファベットで100万文字だから1MByteでお釣りがくるぜ(無意識に8bit系を想定)

文字コード値22FFFFを代入する(無意識にUCS4を想定)

てな感じ
どちらかと言うと今までは文字コードの想定を置かないとブログラムを書けない言語が主流だったから
swiftの文字列に対するインターフェースはまどろこしく感じちゃうよね
コメント1件

976
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/18 23:26:41  ID:HBZdFR5pa.n(3)
>975
何かの勘違いでそういう想定(今時EBSDICを想定する奴はいないと思うけど)したとしても、
Sting内部に直接アクセスできないんだから、間違えようがない気がするんだけど、
UnsafePointer系の操作で出来ちゃったりするのかな
UnicodeScalarとか名前から明らかなとこにJISコード入れちゃうとかはそれ以前の問題だし
コメント1件

977
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/18 23:31:01  ID:HBZdFR5pa.n(3)
それとも、こういう想定はダメよってこと?

for ch in 0..<26 {
 let s = String(format: "%c", ch+65)
 print(s)
}

978
デフォルトの名無しさん (スフッ Sd7f-yXFx)[sage]   投稿日:2017/02/18 23:42:15  ID:KQ+hCWpkd.n(2)
>976
うん、少し前の人が書いてくれているように
内部表現とインターフェースを出来るだけ切り離すように設計されてるからね

実際には
アルファベット10文字が
10バイト+アルファになるか
20バイト+アルファになるか
40バイト+アルファになるか
を考えちゃいけない

ってくらいかな?

979
デフォルトの名無しさん (ワッチョイ eb46-MFap)[sage]   投稿日:2017/02/19 00:13:39  ID:vGTXfdrY0.n(3)
モダンすぎる言語Swift

980
デフォルトの名無しさん (ササクッテロロ Sp9f-yXFx)[]   投稿日:2017/02/19 10:00:43  ID:x1LhCX3Ip.n
【1000000】
【10】【100】【1000】
はじめに,膿字を設定
◆銑い離椒織鵑魏,垢箸修凌字だけ,凌字がマイナスされていく
というアプリを作りたいのですが難しいですか?
今まではおみくじアプリや姓名診断アプリしか作ったことがないです
コメント1件

981
デフォルトの名無しさん (スフッ Sd7f-yXFx)[sage]   投稿日:2017/02/19 10:34:46  ID:h/cJOvo9d.n
>980
お前さんの持ってるスキルによる

手慣れた人なら10分でとりあえず動くところまでは作れる

982
デフォルトの名無しさん (ワッチョイ eb46-MFap)[sage]   投稿日:2017/02/19 11:10:03  ID:vGTXfdrY0.n(3)
プログラミング史上最強にエレガントでモダンな言語Swiftならおちゃのこさいさいよ
コメント1件

983
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/19 11:23:30  ID:w9YkVXBS0.n
>982
Visual Studio + C#の方がDesktopアプリは作りやすいよ。
FormにGUI部品を貼り付けただけで、イベントハンドラーがコードに現れる。

Xcode + Swiftも良いと思うよ!
コメント1件

984
デフォルトの名無しさん (ワッチョイ eb46-MFap)[sage]   投稿日:2017/02/19 11:29:31  ID:vGTXfdrY0.n(3)
>983
うん、知ってる
でも最強なんだよ
なんと言ってもApple様御用達の肝入りの言語なんだから
他者の追随を許さない最もエレガントでモダンな言語であることに揺るぎはないのです

985
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/19 21:30:02  ID:nebqvmdd0.n(6)
String.Encoding構造体のメンバに関してAPI Referenceに記述が見つからない。

見つけられないのは俺だけ?
勘で、.utf8ってメンバを想定して、動いてるけど、他にどんなメンバがあるのか気になる。
コメント2件

986
デフォルトの名無しさん (ワッチョイ df93-yXFx)[sage]   投稿日:2017/02/19 22:01:23  ID:xeFgM7Gv0.n
>985
Swift側じゃなくってObjectiv-C側を読むんだよ

あのAPIリファレンスはときどきそう言うのがある
コメント1件

987
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/19 22:22:31  ID:nebqvmdd0.n(6)
>986
ん?どう言う事?

String構造体ってのはSwiftにしかないので、Obj-C側ってことは、
NSStringのAPI Referenceを見ろって事?

typedef NSUInteger NSStringEncoding;
ってのがあって、NSUTF8StringEncoding = 4らしいんだけど、
これは、String.Encoding構造体とは違うよねぇ。

988
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/19 22:22:46  ID:y9mVagiha.n(2)
>985
ソースみればいいじゃん
Sting.Encodingを右クリックして、「Jump to Definition」を選べばいい

989
デフォルトの名無しさん (アウアウエー Sa7f-ykbm)[sage]   投稿日:2017/02/19 22:25:33  ID:y9mVagiha.n(2)
あれ、String.Encodingじゃダメか
String.Encoding.utf8の部分を右クリックすればいける
それか、Option押しながらクリックして、String.Encodingのヘルプ見てもいいけど

990
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/19 22:28:05  ID:nebqvmdd0.n(6)
var out: String = String(data:data, encoding: .utf8)!
out = String(data:data, encoding: .ascii)!
out = String(data:data, encoding: .shiftJIS)!

確かに、NSStringEncodingのAPI Referenceが参考にはなる。

あんがと!

991
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/19 22:30:35  ID:nebqvmdd0.n(6)
まあ、俺はmacOS使ってるけど、uBuntuの人は
String.Encodingどうすんだ?

992
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/19 22:34:36  ID:nebqvmdd0.n(6)
out = String(data:data, encoding: String.Encoding(rawValue:4))!

なんと、NSStringEncodingをAPI Referenceで調べて、
こいつはNSIntegerなので、エンコードの番号をrawValueで指定
するっていう、大変な事をする事でもOKだ。

993
デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)[]   投稿日:2017/02/19 23:00:02  ID:nebqvmdd0.n(6)
なんと、DashでStringを引いた結果と
XcodeのAPI ReferenceでStringを引いた結果が違う事に気がついた。
特にNested Typeの所が違う。

Xcodeは8.2, Dashは3.4.2だけど、Xcodeは最新版では無いなぁ。

994
デフォルトの名無しさん (ワッチョイ 0f7b-TuOZ)[sage]   投稿日:2017/02/20 00:50:56  ID:mClGTBrk0.n
最近のUbuntuだけは、4バイト文字(サロゲートペア)を1文字と数えるらしい

他のOS, Java などでは、2文字と数える
コメント1件

995
デフォルトの名無しさん (ワッチョイ 0fba-PET2)[sage]   投稿日:2017/02/20 00:53:22  ID:fz3RD/iA0.n
んなアホな

996
デフォルトの名無しさん (スッップ Sd7f-yXFx)[sage]   投稿日:2017/02/20 09:25:40  ID:jVgNOv8dd.n
>994
LinuxのAPIの話ならwchar_tは32bitだから、
これを使ってるんなら
サロゲートペアという概念は無いし、
Linuxでのwchar_tの1文字は基本的に4バイト

しかし、wchar_tが固定長文字と言う前提が、既に時代遅れになっちゃったなぁ

997
デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)[sage]   投稿日:2017/02/20 10:01:05  ID:ChbPWtRt0.n
次スレ
Swift part10

998
デフォルトの名無しさん (ワッチョイ bbbd-ea4t)[sage]   投稿日:2017/02/20 12:28:23  ID:mI2RJMjC0.n
お前ら文字列の扱い大好きだな
そんなに盛り上がる話なのかよwww
コメント1件

999
デフォルトの名無しさん (ササクッテロラ Sp9f-BRgT)[sage]   投稿日:2017/02/20 12:50:35  ID:fp9BsZKPp.n
>998
じゃあお前が何か盛り上がるネタを投下しろよ

1000
1000ゲト (ワントンキン MM7f-WBM5)[]   投稿日:2017/02/20 13:02:42  ID:sccSrbIhM.n
1000
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

プログラム板 タイトル検索

このスレッドが人気です(実況系)
実況 ◆ フジテレビ 83007 (707)フジ実況
あさイチ「プレミアムトーク 芳根京子」★3 (230)NHK実況
NHK総合を常に実況し続けるスレ 132343 全力少年 (702)NHK実況
白熱ライブ ビビット★1 (720)TBS実況
羽鳥慎一モーニングショー★4 (156)テレ朝実況
実況 ◆ 日本テレビ 54737 (142)NTV実況
連続テレビ小説 べっぴんさん★253 (296)NHK実況
はやドキ!&あさチャン!金曜日★2 (378)TBS実況
このスレッドが人気です(ニュース系)
【森友学園】辻元清美氏「3つの疑惑」報道で民進党が産経新聞に抗議文「流言飛語を疑惑扱い」「首相夫人とは事柄の本質異なる」★48 (753)ニュー速+
【森友学園】民進・蓮舫代表「抗議文と法的措置を含めて対応を考えている」産経新聞の辻元氏「3つの疑惑」報道を「ガセネタ」と批判★6 (1001)ニュー速+
【サッカー】26年W杯アジア枠は「4・5」→「8」へ大幅増へ★2 (602)音楽・芸能ニュース
【芸能】小籔千豊が新幹線で怒られボヤキ「人それぞれすぎてわからんよ」★3 (652)音楽・芸能ニュース
【アイドル】「仕事がない」元SKE48佐藤聖羅、預金残高5,142円 厳しい経済状況暴露される (118)音楽・芸能ニュース
【値上げ】大手電力10社 5月から電気料金を大幅値上げ (273)ニュー速+
【教育】中学武道に銃剣道を追加 体育で「異性への関心」は残る (790)ニュー速+
【森友学園】民進・蓮舫代表「抗議文と法的措置を含めて対応を考えている」産経新聞の辻元氏「3つの疑惑」報道を「ガセネタ」と批判★5 (1000)ニュー速+
プログラム板の人気スレ
オブジェクト指向って自然な文法だな 2 (687)
【統計分析】機械学習・データマイニング14 (436)
Excel VBA 質問スレ Part47 (432)
次世代言語議論スレ[Go Rust Haskell Scala]第3世代 (466)
Visual Studio 2017 (854)
C言語なら俺に聞け 139 (592)
C++相談室 part129 (1000)
C#, C♯, C#相談室 Part92 (740)
推薦図書/必読書のためのスレッド 81 (608)
Pythonのお勉強 Part52 (753)
ふらっと C#,C♯,C#(初心者用) Part127 (154)
ねねっちと一緒にプログラムを勉強するスレ第2話 (109)
Visual Studio 2015 Part8 (562)
Git 15 (408)
Xamarin Part3 (666)
Swift part10 (319)
【PHP】下らねぇ質問はここに書き込みやがれ 8 (122)
Java入門・初心者質問スレ Part.2 (951)
Ruby 初心者スレッド Part 59 (951)
クラス名・変数名に迷ったら書き込むスレ。Part27 (929)
プログラミング言語 Rust 2 (714)
☆★Java質問・相談スレッド179★★ (829)
HSP総合スレ【part 10】 [無断転載禁止](c)2ch.net (257)
ドルオタワイ、1からプログラミングを学びたい (131)
+ JavaScript の質問用スレッド vol.122 + (927)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
広告


首都圏の方、ソフトバンク光オススメですよ


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 新着書き込みなし(304)