Swift part9 [無断転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8b3c-/6Y/)
2016/10/18(火) 11:34:44.16ID:oLo879ze0関連スレ
プログラミング言語Swift 3
http://potato.2ch.net/test/read.cgi/mac/1408762479/
[SDK]iPhoneアプリ開発初心者質問箱47[touch][iPad]
http://potato.2ch.net/test/read.cgi/mac/1470902093/
Xcode part14
http://potato.2ch.net/test/read.cgi/mac/1476190499/
Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/
前スレ
Swift part8
http://echo.2ch.net/test/read.cgi/tech/1463149806/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0002終了 (ワッチョイ 67c9-3ZZL)
2016/10/18(火) 16:31:42.47ID:q3gbqcrC00003デフォルトの名無しさん (ワッチョイ 57c9-x3Zw)
2016/10/18(火) 16:36:48.89ID:5S2LdbWL00004デフォルトの名無しさん (スップ Sdcf-Oa01)
2016/10/18(火) 19:24:46.57ID:nd0z2LLHdおつんちん
0005デフォルトの名無しさん (ワッチョイ 213c-A7+C)
2016/10/21(金) 11:44:19.03ID:09Dpangg0open func keyValueObservingExpectation(for objectToObserve: Any, keyPath: String, handler: XCTest.XCKeyValueObservingExpectationHandler? = nil) -> XCTestExpectation
↑の、handlerを略した書き方すると
open func keyValueObservingExpectation(for objectToObserve: Any, keyPath: String, expectedValue: Any?) -> XCTestExpectation
と区別つかねぇとかエラー吐かないでくださいよ
0006デフォルトの名無しさん (ワッチョイ 17e6-DrBp)
2016/10/23(日) 09:48:39.00ID:M03zTDWo0Linuxが商用利用で成功したのも2003年頃にIBMがLinux注力したから
AppleとIBMが協力関係になってSwift推し
Swiftの未来はどうなるんだろうな
0007デフォルトの名無しさん (スプッッ Sd39-YT5Q)
2016/10/23(日) 11:09:52.31ID:l/iDXb3dd0008デフォルトの名無しさん (ワッチョイ fd62-A7+C)
2016/10/23(日) 14:59:20.34ID:254NT19n00009デフォルトの名無しさん (ワッチョイ e0c9-A7+C)
2016/10/23(日) 15:11:37.30ID:imvMl3ez00010デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)
2016/10/23(日) 15:51:47.79ID:kiR0DkrqpobjcもApple OSでは、これを使わないと何も出来ない的な意味でゴッリゴリ
とか言うと発狂する子が沢山来そう
0011デフォルトの名無しさん (スッップ Sdb8-YT5Q)
2016/10/23(日) 16:07:03.29ID:3d+f6jv2dObjective-CはAppleが採用するずっとずっと前からあったけど…。
0012デフォルトの名無しさん (JP 0He5-GPOt)
2016/10/23(日) 16:07:53.11ID:CGzeXgZhH0013デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)
2016/10/23(日) 16:26:10.41ID:kiR0Dkrqp2.0だの言わないといけないのかな
今のモダンObjCと最初期PbjCは別モノだろう
Swift betaとSwift3くらいに言語仕様も実装手法も違う
0014デフォルトの名無しさん (JP 0He5-GPOt)
2016/10/23(日) 16:39:25.15ID:CGzeXgZhH0015デフォルトの名無しさん (ワッチョイ e0c9-A7+C)
2016/10/23(日) 16:56:22.96ID:imvMl3ez00016デフォルトの名無しさん (スッップ Sdb8-YT5Q)
2016/10/23(日) 16:59:07.26ID:PL/5Is43d0017デフォルトの名無しさん (ワッチョイ 4066-vevC)
2016/10/23(日) 17:34:51.29ID:pqyteWXL00018デフォルトの名無しさん (ワッチョイ fa13-GPOt)
2016/10/24(月) 10:43:06.10ID:9xygNeDa00019デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)
2016/10/24(月) 11:24:05.58ID:zqG7Aoccp他言語も追従しないし、当のアポーもメンバ変数に対してはメッセージ式を殺しにかかってるし
じゃあ、Swiftが流行るのかというと別だけど
0020デフォルトの名無しさん (ワッチョイ fa13-GPOt)
2016/10/24(月) 11:43:48.71ID:9xygNeDa00021デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)
2016/10/24(月) 12:08:54.10ID:zqG7Aoccp0022デフォルトの名無しさん (スプッッ Sdc8-YT5Q)
2016/10/24(月) 12:27:56.48ID:UH3y4ryLd0023デフォルトの名無しさん (スフッ Sdb8-vevC)
2016/10/24(月) 13:01:34.11ID:IFhOb1KRd悪貨は良貨を駆逐する
0024デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)
2016/10/24(月) 13:20:21.03ID:fQljBZVUpSwiftは良貨だった、、、?
0025デフォルトの名無しさん (JP 0Hc8-AIfR)
2016/10/24(月) 16:46:18.16ID:YkwUZi7rHなんで、Swift良い言語って言ってるの?
0026デフォルトの名無しさん (ワッチョイ 213c-vtRd)
2016/10/24(月) 17:06:50.03ID:i06wcCBv00027デフォルトの名無しさん (ワッチョイ 9dc9-GPOt)
2016/10/24(月) 19:47:10.53ID:yvoyC+Qj00028デフォルトの名無しさん (スッップ Sdb8-YT5Q)
2016/10/24(月) 21:42:17.30ID:PZcG170ZdジョブズはたぶんSwiftを知らない
0029デフォルトの名無しさん (ワッチョイ fd62-A7+C)
2016/10/25(火) 07:23:49.15ID:TTNTJAzx0SwiftとObjC逆じゃね?
0030デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)
2016/10/25(火) 09:21:08.38ID:ZmUS+kLtpジョブズ存命時の言語だよな、ObjCって
0031デフォルトの名無しさん (ワッチョイ e0c9-A7+C)
2016/10/25(火) 10:12:28.38ID:HyB8mBs700032デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)
2016/10/25(火) 10:39:33.81ID:ZmUS+kLtp生きてる時は幽体離脱で、死後は霊になってSwiftを推すとは流石ジョブズ
しかし、信者が乗らず悪貨のObjCが当然優勢ときたもんだ、くやしいのうwww
ところで、誰かSwift Package Managerって誰か使ってる?
3 stable releaseでもまだ開発中っぽかったが 、どれくらい不便か知りたい
0033デフォルトの名無しさん (ササクッテロ Sp89-vevC)
2016/10/25(火) 18:39:13.09ID:v9gzKB+7pラトナーはジョブズから作られた天然のAIだよ
0034デフォルトの名無しさん (ワッチョイ 213c-A7+C)
2016/10/26(水) 00:56:29.52ID:5b/0SgTG0他の言語との一貫性を考えると禁止した方がいいと思うんだけど
うちの会社ではコーディング規約で禁止してるけど
若手エンジニアが結構反発してるんだよね
0035デフォルトの名無しさん (ワッチョイ fd62-YT5Q)
2016/10/26(水) 02:40:12.32ID:NtHQYyX30話はそれからだ
0036デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)
2016/10/26(水) 05:29:30.35ID:BNroq1d2p3だかで予約後と被るキーワードも''で括らないで良いみたいな修正入った気がする
キーワードの順不同廃止みたいに廃止プロポーサルは出てないよな
0037デフォルトの名無しさん (スッップ Sdb8-YT5Q)
2016/10/26(水) 08:57:46.67ID:LVTypZImd「関数ラベルとか」の「とか」は、「関数ラベル」以外の何?
0038デフォルトの名無しさん (ワッチョイ 213c-vtRd)
2016/10/26(水) 09:02:55.24ID:EtQ2cepM0禁止でええやろって思うから
0039デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)
2016/10/26(水) 09:19:43.05ID:BNroq1d2p予約語と被って困ってたのは元はコンパイラの実装上の面倒だろう
その古い文化に慣れて、新しい文化に馴染めないのも分からいでもないが、そりゃ老がいだ
あ、他言語との歩調合わせはどうでもいい
Javaの文法でObjC書いたり 、ObjCの文法でJava書くクソッタレ信者は死ねと思ってる
他に禁止したい理由はある?
0040デフォルトの名無しさん (ワッチョイ 213c-vtRd)
2016/10/26(水) 09:42:23.99ID:EtQ2cepM0例えばJavaで変数名や引数名にref, params, inも使わない
一方禁止して困る理由は特に無いってだけ
禁止するにせよ、しないにせよ重大な理由は無いだろう
多少の面倒のトレードオフでどっちか選ぶだけ
他のプロジェクト入る場合はそれに合わせるから
わざわざ反発する程の何かがあるん?という疑問
0041デフォルトの名無しさん (ササクッテロ Sp89-bS7b)
2016/10/26(水) 16:25:11.94ID:NhxkI5gep// 少し前のSwift
func buyWax(const: Int, forHage hage: String) {
}
buyWax(const:3_000, forHage:
0042デフォルトの名無しさん (スプッッ Sdc8-CGyA)
2016/10/26(水) 16:26:08.97ID:4gTCvaIpdなら、他言語の予約語を、変数名とかに使うのも禁止してるの?
使用禁止語リストを保守するのも、理由付けするのも大変そうだけどね
0043デフォルトの名無しさん (ササクッテロ Sp89-bS7b)
2016/10/26(水) 16:28:33.43ID:NhxkI5gepハゲのためにワックス買ってくる関数のサンプルコード
ttp://swiftlang.ng.bluemix.net/#/repl/58105ac610d66e1185d3d203
リファレンス
ttps://swift.org/documentation/api-design-guidelines/#argument-labels
問題も面倒もない出来ることをせず、無駄に冗長なラベル名や分かりづらいラベル名は老害
まぁ若造が鬼の首を取った気分で反発してるんだろうから
この程度のコーディングルールは事なかれ主義で黙って従うのが社会人なんだよ!って黙らせればいい
0044デフォルトの名無しさん (ワッチョイ 213c-vtRd)
2016/10/26(水) 17:31:30.47ID:EtQ2cepM0うちは別に禁止してないぞ
移植時の面倒事回避の1つとして控えた方がいいと教えてるだけ
使う言語は限られていてそれらを知ってるのが前提だから
リストなんてものもない(面倒だし)
影響が大きくない部分は下が守ってなくても許容するし自分が入る場合は従っておく
現場でキャパ少ない奴は上で下でも地雷だわ
ブログやら掲示板では猛獣のごときスタイル論争でも好きにやればいいが
0045デフォルトの名無しさん (スフッ Sdb8-vevC)
2016/10/26(水) 18:33:44.20ID:n1sZka3Mdおれ、記憶力悪い方なんでコンパイラに怒られるまで予約語かどうかなんてわかんないや
なので、作業中の言語は対応できるけど
他の言語の予約語までは対応できない
コミット時にNGワードチェッカー走らせて拒絶するようにしておいてね
0046デフォルトの名無しさん (ワッチョイ 172b-bS7b)
2016/10/26(水) 19:39:20.63ID:dE6dARfA0JavaもObjCもSwiftもKotlinもC/C++もJavaScriptもPythonもGoもRustも みんなちがって、みんないい
0047デフォルトの名無しさん (ワッチョイ 638f-Jz20)
2016/10/27(木) 00:11:07.98ID:e6l93V+P0でもちょっとでも優れた機能があると、それを自分がメーンで使っている言語に取り込みたくなる。そしてコモディ化が始まる。
0048デフォルトの名無しさん (ワッチョイ e3c9-3xFl)
2016/10/27(木) 01:59:35.26ID:X0THyINs0にしても
2ちゃんの書き込みにしても
ひまなひとがやること
能力があるひとは忙しいから
そんなことにかまってる無駄な時間は使わない
0049デフォルトの名無しさん (ササクッテロ Sp7f-ceYG)
2016/10/27(木) 07:41:18.42ID:CQANQwZhpねーよwww
そんなことをするのは、他言語をちょっとかじって多数言語が扱えると思っちゃってるニワカか
メイン言語を至上と信じそれ在りきでその言語を如何によく使うかを考えてる信者だ
0050デフォルトの名無しさん (ワッチョイ 6362-ijxz)
2016/10/27(木) 07:52:38.72ID:g7DaVEt900051デフォルトの名無しさん (ワッチョイ 6362-ijxz)
2016/10/27(木) 07:54:31.29ID:g7DaVEt900052デフォルトの名無しさん (ワッチョイ 133c-xElR)
2016/10/27(木) 08:55:38.81ID:4jy4piHn0>チェッカー走らせて拒絶するように
反射レスせずちゃんと読もうな
0053デフォルトの名無しさん (スフッ Sdff-O9pn)
2016/10/27(木) 10:34:44.50ID:JkrFOFZTdあ、すまん
意味のないこと「教えて」偉そぶるんじゃない、ボケ
って、事を柔らかく言いたかっただけ
ルール化すべきことはきちんとルールを作って強制すべき
可能なら自動化もする
強制しないならそれは教える価値のないものだし
わざわざ教育すべきではない
単なる雑談、それも老人の昔話レベルだよ
バックグラウンドが違えばみんなの「普通」は違うんだから、思い込みで中途半端な「教育」されると
チーム運営上混乱を招くぞ
carとかautoとかいちいち「あれ?あの言語で予約語だったっけ?」とか考えさせるな、思考が中断されてプログラマの時間が勿体無い
他の言語に移植する時困ったらsed一発で修正できることだろ
それ以前に言語が変わればプログラムの構造自体が変わるんだから
予約語の被りを避けたところでほとんど意味がない
0054デフォルトの名無しさん (ササクッテロ Sp7f-Jz20)
2016/10/27(木) 11:59:03.60ID:CQANQwZhpObjC, SwiftのIF共有のために、ObjCは 前置詞+名詞 のラベルが風習として良いから
Swiftも 前置詞(予約語) だけのラベルは適切でないってならそりゃそうだと同意するんだが
0055デフォルトの名無しさん (スプッッ Sdff-O9pn)
2016/10/27(木) 18:00:16.74ID:8ioUQXgpdIBM Swift Sandboxが少し使いやすくなっていた
電車の中とかで暇つぶしにちょうどいい
スマホでSwiftやってたら隣の人に変な目で見られたけど
0056デフォルトの名無しさん (ワッチョイ 133c-0DI1)
2016/10/27(木) 20:31:53.66ID:Ps2jyA+B0// 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)
0057デフォルトの名無しさん (ワッチョイ e3c9-3xFl)
2016/10/27(木) 20:58:34.09ID:X0THyINs00058デフォルトの名無しさん (ワッチョイ 133c-ijxz)
2016/10/27(木) 23:11:21.08ID:x9Z62p+J0>それ以前に言語が変わればプログラムの構造自体が変わるんだから
>予約語の被りを避けたところでほとんど意味がない
いや、それは違う。
プログラム構造を変えずに移植することは可能だし、
業務プログラミングでは当然だよ。
実際、COBOLプログラムをJavaで書き直すときは
COBOLの構造でみんな書いてるよ。
チューリング完全ならロジックレベルでは互換性があるんだから、
プログラム構造を変えずに移植することは可能なはず。
0059デフォルトの名無しさん (ワッチョイ 133c-WNS8)
2016/10/27(木) 23:48:40.67ID:4jy4piHn0ご高説ありがたいが
職場のバックグラウンドが違うのでね
0060デフォルトの名無しさん (ワッチョイ 6362-Jz20)
2016/10/28(金) 00:39:44.63ID:adI6CPkE0飾りといってみたり可読性が高いと称賛してみたり
Swifterのスタンスはめちゃくちゃやな
0061デフォルトの名無しさん (スップ Sdff-Jz20)
2016/10/28(金) 01:22:03.46ID:8E81+S0Cdそのためのセレクタだよ
0062デフォルトの名無しさん (ササクッテロ Sp7f-Jz20)
2016/10/28(金) 10:50:21.84ID:Z2zfTStfpswift3ではforHageはforにするんじゃないの?
従来ルールから逆らうけども、何度もhage hage言うのはバカっぽいから
>>60
objcerは何しに来てるの?アンチスレの存在知らない?
0063デフォルトの名無しさん (オッペケ Sr7f-P+QJ)
2016/10/28(金) 11:16:08.58ID:v43qydeMrjava, php
0064デフォルトの名無しさん (スップ Sdff-Jz20)
2016/10/28(金) 11:25:55.99ID:UKDThdJFd| 彡⌒ミ
\ (´・ω・`)また髪の話してる
(| |)::::
(γ /:::::::
し \:::
\
0065デフォルトの名無しさん (スプッッ Sdff-O9pn)
2016/10/28(金) 12:43:27.25ID:IYKxBeNKd>チューリング完全ならロジックレベルでは互換性があるんだから、
>プログラム構造を変えずに移植することは可能なはず。
なんだ、設計屋か、
たとえばcでメモリ上にファイルから読み込んだバイナリデータをmcpy()で展開しておいて
構造体の配列としてアクセスできるようにキャスティングして
データ解析いっちょあがり
とか
これをJavaで実装し直すとバイト単位で解析しなきゃならないし
オーバーロードとか型ジェネリックを多用したプログラムを
どちらにも対応していない言語にそのまま移植したらswitch文だらけでエライコッチャになるとか
macOS上で組んだプログラムをwinに持って行こうとしたらノーティフィケーションの仕組みが無くて、メッセージングを自作しなきゃならなくなったとか
そう言うのを「プログラム構造を変えずに移植できる」と言うのであれば
確かにできるよ
で、こう言う労力に比べて他の言語の予約語を避けると言うコーディングルルールはあまりにも意味がなさすぎると思わない?
必要ならコーディングルルールに「〇〇への移植性を考慮すること」って最初から入れとかなきゃ
予約語だけの問題じゃない
0066デフォルトの名無しさん (ブーイモ MMff-yDtl)
2016/10/28(金) 19:17:32.49ID:noGENyqJM0067デフォルトの名無しさん (ササクッテロ Sp7f-Jz20)
2016/10/28(金) 19:51:22.41ID:gCFwn2zqp名案だと思ったw > 全部_
0068デフォルトの名無しさん (ワッチョイ 6362-ijxz)
2016/10/29(土) 09:05:38.96ID:U/oHXeL/0Swiftのポジティブな話題限定のスレだったのか
0069デフォルトの名無しさん (ワッチョイ d7ba-Jz20)
2016/10/29(土) 09:08:25.76ID:wiQwEsKb00070デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20)
2016/10/29(土) 09:22:50.57ID:HRK0HvHWpswifterは...とか言っちゃう外様はお帰り
0071デフォルトの名無しさん (ワッチョイ e34e-ijxz)
2016/10/29(土) 09:25:53.53ID:7g9yHYdX00072デフォルトの名無しさん (ワッチョイ 6362-ijxz)
2016/10/29(土) 09:51:11.83ID:U/oHXeL/0Swiftersにすると確かに響きがいいな
0073デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20)
2016/10/29(土) 11:31:24.15ID:HRK0HvHWpクッソ笑えること確実、betaから笑い続けてても未だ笑える
今回のABI安定化見送りとかバカジャネーノと思うし
だからObjCのが優れてるし!ってネガキャンしなくても良いんだよ
0074デフォルトの名無しさん (ワッチョイ 039a-9fiG)
2016/10/30(日) 00:08:47.81ID:/VdtApTb0日本語のコミュニティだとあまり議論されてない。
0075デフォルトの名無しさん (ワッチョイ 6fc9-ceYG)
2016/10/30(日) 07:53:17.05ID:j7jj+A2N0Swiftだけなのか、ObjCも同じく起こるのか、既存/自前のクラスのどちらでも発生しうるのか、仔細を知りたい
単純にお前の感覚なら、まぁそれはそれでいいけど
0076デフォルトの名無しさん (ワッチョイ 0f93-O9pn)
2016/10/30(日) 09:58:33.41ID:ZJuXfoFw0使い方知らないんだけど
いずれにしろコンパイルに時間がかかると言うのは
コンパイラ屋とかハードウェア屋が頑張る所であって
プログラミング言語としては生産性・保守性(含可読性)にこだわって欲しいな
「コンピュータ周辺機器の中で最も遅いのは人間の頭である。」って誰の言葉だっけ
0077デフォルトの名無しさん (ワッチョイ 039a-ijxz)
2016/10/31(月) 01:46:30.11ID:m1eOJOQ80Swiftだけだよ
議論されてるのは例えばここのコメント欄とか。
https://www.natashatherobot.com/using-swift-extensions/
あと、このスライドの23枚目では、extensionを減らすことがビルド時間短縮において大半を占めてることがわかる。
http://www.slideshare.net/AvitoTech/objectivec-swift-avito
extensionのによる可読性を諦めてビルド時間を優先してなるべくextensionを使わないようにするのは周りの優秀なiOSエンジニアはちらほらやってるやつがいる。
本格的なiOSプロジェクトではソースコードが肥大化し、ビルド時間を短縮することはかなり重要になってくるからな。
もちろん無駄なextensionを減らすだけであって、String+◯◯のような必要なextensionは使ったりする。
0078デフォルトの名無しさん (ワッチョイ 039a-ijxz)
2016/10/31(月) 01:47:57.67ID:m1eOJOQ80あと、それ書き込むくらいなら「swift extension build time」でググれば速攻でてくるから。。エンジニアの基本でしょ。。w
0079デフォルトの名無しさん (ワッチョイ 039a-ijxz)
2016/10/31(月) 01:53:06.54ID:m1eOJOQ80そうしたいところなんだが・・・・・
Swiftyな書き方ばかりしてると異常にビルド時間伸びたりしちゃうもんなんだよね・・。
趣味の小さいプロジェクトならいいけど、
本格的なiOSプロジェクトって基本的にかなりの大きさになるもんだから、
最新で最強に特盛りなMacbook Proつかってもクリーンビルド10分とかかかって生産性クソ下がるもんだよ。ほんと、仕事にならないっていうレベルで。
結果、iMacかMac Proを会社に買ってもらうしかなくなったりするんだけど、その交渉がまた楽ではないんだよな。。
だから、まじで突き詰めてくとSwiftyに自由に書いてるだけじゃなく、ビルド時間も考慮した書き方もしていく必要があるよ。
0080デフォルトの名無しさん (ワッチョイ 6362-Jz20)
2016/10/31(月) 02:23:37.24ID:y/KHbdbU00081デフォルトの名無しさん (ワッチョイ e3c9-3xFl)
2016/10/31(月) 04:34:12.26ID:jkUzecbb0コメント無駄なので書きませんとか
hoge = fuga; .... // こことか
hage = shine; ... // こことか
abe = mao; ..... // こことか
そろえる時間とか無駄だよな
0082デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20)
2016/10/31(月) 08:31:13.97ID:Yjtyu49Gpそんなのswift1.xの時からずっと言われてたろ
0083デフォルトの名無しさん (ワッチョイ 133c-ijxz)
2016/10/31(月) 09:32:16.39ID:NdNVw3ey0フレームワークである程度分割すればいいんじゃねーの?
0084デフォルトの名無しさん (スプッッ Sdff-O9pn)
2016/10/31(月) 09:59:50.69ID:paNpTD9Xd状況はわかるし、気持ちもわかる
でもやってる事はどちらかと言うと悪手のように思うよ
フルビルドに10分とか、ちょっと大きいプロジェクトだとcでも普通だよ。
でもフルビルドなんて1日に一回もやらないでしょ?
やる必要のあるときにはお昼とかお茶にしちゃう
もし、煩雑にフルビルドが必要ならコンパイル単位の切り分けが不適切
プロジェクトリーダーと相談して分割しなおそう
>結果、iMacかMac Proを会社に買ってもらうしかなくなったりするんだけど、その交渉がまた楽ではないんだよな。。
これは大変だけど効果的で本質的
高い給料払ってるプログラマがコンパイル時間短縮のために、
あえて苦労して品質の低いコードを書いてるとかもったいなすぎる
その結果出来上がるのがメンテナンス性の悪いソースだし
大変だけどトータルで見ると頑張って高速のマシンを買ってもらう価値あり
レンタルもありだよ
「武器は良いものを下さい」と言って上司を口説いてる「竹槍と根性だけでは勝てません」て
その代わり上司がそのまた上司に説明できるように生産性何パーセントアップとか数字の入った資料は用意している
0085デフォルトの名無しさん (アウアウカー Sa7f-Jz20)
2016/10/31(月) 10:12:37.14ID:MowifMDBa0086デフォルトの名無しさん (スップ Sdff-Jz20)
2016/10/31(月) 12:03:52.55ID:sVVQsMs5d「そろえる時間とか」の「とか」は、「そろえる時間」以外の何?
0087デフォルトの名無しさん (ワッチョイ 133c-xElR)
2016/10/31(月) 14:17:53.86ID:VXqz7JcR00088デフォルトの名無しさん (ワッチョイ 638f-Jz20)
2016/10/31(月) 23:28:17.38ID:zObjWshz0ハードを疑い、最後の最後に結局自分が悪かったと気づく。
結局大概の問題は自分起因だと気づくんだよ。
もっと自分を疑え。
0089デフォルトの名無しさん (ワッチョイ 6362-Jz20)
2016/10/31(月) 23:58:57.20ID:y/KHbdbU00090デフォルトの名無しさん (スプッッ Sdff-O9pn)
2016/11/01(火) 08:37:49.54ID:SqrJLIAed七度探して人を疑え
プログラマに限らないようで
0091デフォルトの名無しさん (ワッチョイ 039a-ijxz)
2016/11/02(水) 02:53:43.12ID:0L1TooRo0azs..
今回のAppleの発表で5KのiMac4万安くなったというのもあり、
交渉する勇気がでました
0092デフォルトの名無しさん (ワッチョイ 039a-ijxz)
2016/11/02(水) 02:59:20.17ID:0L1TooRo00093デフォルトの名無しさん (ワッチョイ fb3c-nx48)
2016/11/02(水) 12:52:27.64ID:vzQ+b2bv00094デフォルトの名無しさん (ササクッテロリ Sp7f-BXGM)
2016/11/02(水) 14:38:43.54ID:rHHkFyogpObjCに比べてコード量が減って作業効率が上がります
デメリット(これは言わない):
ObjCに比べてビルド時間が伸びて作業効率が下がります
ObjCに比べてバイナリ容量(IPAサイズ)が増えてDL時間が長くなります
ObjCに比べて動作性能が悪く実行時にもったりとした動作になります
ObjCに比べてXcodeバージョン更新に伴うコードメンテ量が多く保守工数が増えます
商用ソフトウェアでSwift採用を交渉して通ったらびっくりするよ
それ以前に、Swift採用を交渉してきたらプロマネが(悪い意味で)びっくりするかもしれんけど
0095デフォルトの名無しさん (ワッチョイ 3f13-3xFl)
2016/11/02(水) 16:40:29.18ID:db1quxwb0製品の良し悪しは言語で決まる訳じゃないのに
0096デフォルトの名無しさん (スプッッ Sdff-O9pn)
2016/11/02(水) 18:00:18.26ID:RCRK3FtZdおう、前向きやん、頑張れ!
一つアドバイスするなら、
すぐに買ってもらえなくてもがっかりしないこと
来年買ってもらえたら超絶ラッキーくらいに思っとけ
手間暇かかるし、心も挫けそうになるけど、
やらないと何年たっても買ってもらえないからな
0097デフォルトの名無しさん (ササクッテロル Sp7f-O9pn)
2016/11/02(水) 18:29:15.23ID:UuGtpbllp>ObjCに比べて動作性能が悪く実行時にもったりとした動作になります
他は同意出来るけどこれはどうなの?
WWDCではSwiftの方がすげー早いよって紹介してたんだろ?
0098デフォルトの名無しさん (スプッッ Sdff-Jz20)
2016/11/02(水) 19:37:29.88ID:V5jMGm9Nd0099デフォルトの名無しさん (ワッチョイ b38c-BXGM)
2016/11/02(水) 21:24:36.15ID:RaymUkXW0これは、基底クラスのSwift ObjectクラスがObjC NSObjectクラスよりオブジェクトを構成する要素が少ないからかな
ただ、それからランタイムのバグだの、言語仕様のモダン化だの、もりもり改変して劣化の一途よ
NSHogeとHogeの透過変換とか、for eachでイテレータ利用とか、同じことするのにオブジェクト生成や関数コールが増えるよ
for eachで+2づつイテレートしたらC-style forより1,000倍遅かったのにはびっくりしたわ、+1づつなら同程度速度だったけどさ
ObjCのクソ文法を崇める気はさらさらないけど、Swiftの多大なデメリットを直視しないのもどうかと思う
ユーザデメリットの容量/性能を気にしない商用開発がもしあるならSwiftでも良いんだけどねー、趣味PGのおもちゃとしては楽しい
0100デフォルトの名無しさん (ワッチョイ d7ba-Jz20)
2016/11/02(水) 21:26:12.54ID:xZyO7jMI00101デフォルトの名無しさん (ワッチョイ d742-0DI1)
2016/11/02(水) 22:17:16.59ID:aJUXU1mT00102デフォルトの名無しさん (ワッチョイ 133c-O9pn)
2016/11/02(水) 23:38:41.44ID:ihp4ITm600103デフォルトの名無しさん (ワッチョイ fd8c-AEdt)
2016/11/03(木) 00:05:58.26ID:YyMYD2K/0前スレだか前々スレだかで実測して数値も出した情報だぞw
0104デフォルトの名無しさん (ワッチョイ 7162-DGmA)
2016/11/03(木) 00:14:56.13ID:BOny4tTs0ガバナンスも利いてないしめちゃくちゃ
文法も思想もとっちらかったクソ言語に成り果ててる
0105デフォルトの名無しさん (ワッチョイ bc42-8n5s)
2016/11/03(木) 06:48:25.75ID:GxO0spX30ちゃんとstride使ってるか?
0106デフォルトの名無しさん (ワッチョイ 5e93-m5qj)
2016/11/03(木) 06:52:50.32ID:1srrFQD30つまりは酸っぱい葡萄が大好きな狐さん?
0107デフォルトの名無しさん (スプッッ Sd78-m5qj)
2016/11/03(木) 07:24:57.35ID:UUNhEaPVdまた聞きかじりでdisりたいだけのしょぼい奴が来たか
>swift betaで限定条件下ならばobjcよりswiftのが早かった
>これは、基底クラスのSwift ObjectクラスがObjC NSObjectクラスよりオブジェクトを構成する要素が少ないからかな
基底クラスの要素数が実行速度に影響するなんてどこの言語の話だよ
そもそもswiftは「クラスより構造体」で、標準ライブラリもほとんど構造体に置き換えられてるぜ
>for eachで+2づつイテレートしたらC-style forより1,000倍遅かったのにはびっくりしたわ、+1づつなら同程度速度だったけどさ
それはコードの書き方が下手
どうせどっかの聞きかじりだろ?自分で試してなくてww
悔しかったらそのfor each文とやらを書き込んでみろ
みんなで実行速度測って笑ってやるから
0108デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)
2016/11/03(木) 08:21:24.01ID:w1NhWsHTpbetaが早かった理由はクラスじゃなく構造体だからって論でおk?
基底オブジェクトが違うからって本質から外れてないから構わんけど
前スレ漁るか、C-style for削除のProporsalのサンプルの通りだから自分でどうぞ
0109デフォルトの名無しさん (ワッチョイ 718f-DGmA)
2016/11/03(木) 09:37:42.70ID:zeI07SjJ0メソッド呼び出しに当然オーバーヘッドがあるからswiftが早いのは当然。
でも高速さが必要なところはcで書くという柔軟さを内包してた。
あれ、swift擁護しようとしたらobj-cが良さげになってきた
0110デフォルトの名無しさん (スプッッ Sd78-m5qj)
2016/11/03(木) 12:43:32.38ID:UUNhEaPVd>煽りたいだけの愉快犯っぽい
そうだよ、俺は聞きかじりの知識で何かをdisって
自分が偉い気分になってるやつをいじめるのが好きなんだ
例えばさ
>betaが早かった理由はクラスじゃなく構造体だからって論でおk?
>基底オブジェクトが違うからって本質から外れてないから構わんけど
こっちはいいけど、そっちこそいいのか?
>>99での主張である
ベータは速かったかもしれないが本実装では遅くなる
の論拠を自分で否定してることになるんだぞ?
クラスから構造体への置き換えが進んだSwift3ではさらに速くなっちゃうぞ?
本当にそれでいいの???
>前スレ漁るか、C-style for削除のProporsalのサンプルの通りだから自分でどうぞ
ほらね逃げた
世の中にforのサンプルなんていくつあると思ってるんだ?
それにforはデータ構造と一緒に考えなきゃ意味がないだろ?
まさか空ループ回してるんじゃないだろ?
あなたが、実際に動かしてみたコードで検証しなきゃ意味ないんだよ。ここにコピペしてみろよ
何も1000倍かかったって事実を否定したいってわけじゃないんだぜ
その事実を確認してみたいだけだ
まさかfor文一つ人目にさらす事が出来ない臆病者なのか?
自分でやってみてないから動作時間の測定方法知らないとかそういうわけじゃないんだろ?
0111デフォルトの名無しさん (スプッッ Sd78-m5qj)
2016/11/03(木) 12:44:46.62ID:UUNhEaPVd心配すんなって
swiftからでもcは使えるから
0112デフォルトの名無しさん (ワッチョイ 7162-dKGq)
2016/11/03(木) 13:12:33.29ID:BOny4tTs0却下
0113デフォルトの名無しさん (スッップ Sd28-DGmA)
2016/11/03(木) 13:27:08.44ID:CPk3BZK9d前向きだったやつらも愛想尽き始める
0114デフォルトの名無しさん (ワッチョイ 714e-dKGq)
2016/11/03(木) 13:46:18.73ID:0SaHyNen00115デフォルトの名無しさん (ワッチョイ d0c9-dKGq)
2016/11/03(木) 14:03:19.84ID:Uhidgpr40前にこのスレで出てたfor文のベンチマークもどきならベンチマークとして計測の仕方がまずくてベンチマークになってなかった
面倒くさいから黙ってたけど
0116デフォルトの名無しさん (スッップ Sd28-DGmA)
2016/11/03(木) 14:11:38.60ID:CPk3BZK9dどうなんだろうね
表面的な見た目も無駄にwithout Cにしようとしてるきらいがあるけど
0117デフォルトの名無しさん (ササクッテロリ Spbd-AEdt)
2016/11/03(木) 14:32:53.86ID:w1NhWsHTpSwift Sandboxでのサンプルがダメってんなら提供はむずいのう
ELF読み込み時間を考慮してないとか、単独試験になってないとか、評価回数が少なすぎとか、そりゃツッコミどころはあろうよ
ポインタ文法も薄目に見たら表面上だから・・・
宣言(予約語)、制御文、演算子をC/C++から違うものにしたいんだろうなぁと思う
0118デフォルトの名無しさん (スプッッ Sd78-m5qj)
2016/11/03(木) 14:50:34.97ID:UUNhEaPVdそうだよなぁ
おれ>>110で人の事叩いてみせてるけど
自分自身for文単体の実行速度計測なんてできる気がしない
下手なサンプルコード書くとコンパイラに定数展開されて実行時間ゼロにされちゃうし
最適化避けにio入れたら何測ってるか意味不明だし
最適化オプションを切るという手もあるけど、それじゃ最適化してリリースする実プログラムにとっては意味のない数字にしかならないし
計測方法もタイムスタンプ取るだけだとosやコンパイラに誤魔化されちゃう可能性あるし
プロファイラはやっぱり細かいところを見ようとするとサンプリング負荷の方が大きくなっちゃうし
俺自身は言語としての処理速度にはあんまり興味を持てないや
取り敢えず動くプログラム作ってみて、後はプロファイラ見ながら動かしてみて
不自然に遅いところがあったら手直し
それでイライラしない速度になったらOK
別に言語や開発環境が変わってもやる事は変わんないなぁ
0119デフォルトの名無しさん (スプッッ Sd78-m5qj)
2016/11/03(木) 14:58:28.17ID:UUNhEaPVdえ?、、、、、、
コード読んでないけど、それ、forの速度比較にならないよ
0120デフォルトの名無しさん (ワッチョイ 7162-dKGq)
2016/11/03(木) 15:34:45.56ID:BOny4tTs0「無駄に」には禿同
0121デフォルトの名無しさん (ワッチョイ ef53-nJsM)
2016/11/03(木) 21:07:23.94ID:GA4nbDQd0ビット、バイトレベルの操作はCに任せて、もっと大きな束(Class、Struct)を操作することに専念するという意図だと思ってる
低レイヤーの処理をSwiftで置き換えようという動きはほとんど見られないからな
URLSessionも内部ではCURL使ってるし
0122デフォルトの名無しさん (ワッチョイ ef53-nJsM)
2016/11/03(木) 21:11:27.54ID:GA4nbDQd0低レイヤーもゴリゴリかけるObj志向より
低レイヤーはCで良いです。Obj志向持ち出さないといけないくらい大規模開発になったらSwiftから操作します
本当に開発車が求めてたのはこっちだと判断したのだろう
0123デフォルトの名無しさん (ワッチョイ 718f-DGmA)
2016/11/03(木) 22:36:47.60ID:zeI07SjJ0いやいやcとの連携を考えたら圧倒的にobjcでしょ。swiftからcの構造体とか関数を扱うのってそんなに楽だったっけ?
0124デフォルトの名無しさん (ワッチョイ 7162-dKGq)
2016/11/03(木) 22:52:01.17ID:BOny4tTs0Swiftは右往左往しすぎ
0125デフォルトの名無しさん (ワッチョイ fd10-7tG6)
2016/11/04(金) 00:57:42.08ID:qpsq4Ku/0まじめに設計すればいいのだろうけど、設計コストが割けない場合は面倒臭いからObj-C++のラッパークラスにビュー操作とかたくさん入れるみたいなぐちゃぐちゃのコードができそう
0126デフォルトの名無しさん (ワッチョイ d0c9-X2H6)
2016/11/04(金) 01:55:19.84ID:Y6RBUWTc00127デフォルトの名無しさん (ワッチョイ 5e93-m5qj)
2016/11/04(金) 06:49:07.92ID:IQwZZLFC0うん、ヘッダファイルをインクルード(import)するだけで
Swiftプログラムの中で普通にcの関数や構造体が使える
最初構えちゃったけど、実際やってみると拍子抜けするくらい簡単にcのプログラム呼び出せちゃう
JavaのJNIに比べると格段に楽
c++はワンクッション必要だけどそれも3日で気にならなくなるレベル
0128デフォルトの名無しさん (ワッチョイ 7162-dKGq)
2016/11/04(金) 08:38:39.73ID:f4ftpOMT00129デフォルトの名無しさん (スップ Sd78-DGmA)
2016/11/04(金) 08:42:12.75ID:2pY38tv9d0130デフォルトの名無しさん (スッップ Sd28-DGmA)
2016/11/04(金) 09:19:39.69ID:YHeqrh8ydそれな
でも政治的に無理
0131デフォルトの名無しさん (ワッチョイ 5e93-m5qj)
2016/11/04(金) 09:35:38.12ID:IQwZZLFC0俺がObjective-C使えないから却下
0132デフォルトの名無しさん (スプッッ Sd78-DGmA)
2016/11/04(金) 09:48:35.53ID:tOE/Rf6pd雑魚おつ!
0133デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)
2016/11/04(金) 14:21:14.46ID:jHHFhRr8p0134デフォルトの名無しさん (ワッチョイ 3b3c-A9qr)
2016/11/04(金) 15:05:36.52ID:57dKQ7qw0objc++ がというよりも、clang が使えるものは全部使える。inline smalltalk の書ける c/c++ でしかないのだから。
Xcode の c/c++ 部分のオプションとか一通り見てみるといいよ。
0135デフォルトの名無しさん (ワッチョイ 653c-DGmA)
2016/11/04(金) 15:41:44.53ID:AA4S5DKA0「オプションとか」の「とか」は、「オプション」以外の何?
0136デフォルトの名無しさん (ワッチョイ ef53-nJsM)
2016/11/04(金) 22:14:16.59ID:wN0RTOka0ObjCの命名規約をSwiftに擦り合せるだけで平和になれるかも?
まあそんなこと冗談でも言いたくないんだけどな
主にPOP、generics、が便利すぎてとてもObjCでいいじゃねえかとか言えない
0137デフォルトの名無しさん (ワッチョイ ef53-nJsM)
2016/11/04(金) 22:18:57.13ID:wN0RTOka0あれ相当が純Swiftにも欲しい
0138デフォルトの名無しさん (ワッチョイ 653c-dKGq)
2016/11/04(金) 23:22:05.97ID:fKNeNx+T0removeObserverを連続で読んでもクラッシュしないようにして欲しい
0139デフォルトの名無しさん (ワッチョイ fdad-AEdt)
2016/11/04(金) 23:22:36.85ID:E6UScSsN0気分的な問題もさておき、APIのI/Oで型が保証されないってのは言語仕様で安全(笑)と言えなくなるのではないかと
なお、GenericsはObjCにも随分前にバックポートされたダルルォ
0140デフォルトの名無しさん (ワッチョイ ef53-nJsM)
2016/11/05(土) 05:37:01.21ID:Z0XZZi850前者はただの型安全、後者は強力なコード省略機能だから
0141デフォルトの名無しさん (ワッチョイ 653c-8n5s)
2016/11/05(土) 11:25:04.49ID:J7M9MHD000142デフォルトの名無しさん (スププ Sd28-m5qj)
2016/11/05(土) 11:49:58.86ID:udcWDT/tdま、IOが型に限らず安全じゃないのは根源的な問題だから
受け取ったデータをどうやって安全な型に変換して
持ってこれるようにするのかが
言語仕様屋さんとライブラリー設計屋さんの腕の見せ所
0143デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)
2016/11/05(土) 14:31:34.27ID:uB6+UJGhprustくらい凶悪で安全な型推論と型変換があればなぁ
それをオブシーに毛が生えた程度のスイフトに求めるのは酷だけども
0144デフォルトの名無しさん (ワッチョイ 653c-8n5s)
2016/11/05(土) 15:50:28.36ID:4esgQXgk0ベースがオブシーのSwiftに取り込めないだろうな
0145デフォルトの名無しさん (スププ Sd28-m5qj)
2016/11/05(土) 15:52:39.39ID:udcWDT/td煽りにしてももう少し捻ろうよ
各言語は設計者の決めた土俵で最強を目指している
そしてその土俵は言語ごとに驚くほど違う
違う土俵を比べてなんか意味があるのか?
0146デフォルトの名無しさん (ワッチョイ 7162-dKGq)
2016/11/05(土) 20:38:23.05ID:UUL9l/XE0疲れるわいい加減
0147デフォルトの名無しさん (ワッチョイ bc42-8n5s)
2016/11/05(土) 22:37:03.08ID:Egd9oR0200148デフォルトの名無しさん (スップ Sd78-DGmA)
2016/11/05(土) 22:41:52.42ID:BUcUWGbDd0149デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)
2016/11/05(土) 22:52:10.19ID:uB6+UJGhpしかしgoのdeferとかパクってて今さら恥も外見もない
狙ってるのはnodejsとobjcの後釜だったろ(過去形
Javaの後釜はkotlinに任せた
0150デフォルトの名無しさん (ワッチョイ bc42-8n5s)
2016/11/06(日) 00:12:40.09ID:ezrbx1w500151デフォルトの名無しさん (ワッチョイ d0c9-dKGq)
2016/11/06(日) 01:05:29.16ID:vkxhzVrT00152デフォルトの名無しさん (ワッチョイ 718f-DGmA)
2016/11/06(日) 10:14:23.57ID:4L6+G/1b00153デフォルトの名無しさん (ワッチョイ bc42-8n5s)
2016/11/06(日) 17:14:18.09ID:WBLFwz5S00154デフォルトの名無しさん (ワッチョイ d0c9-X2H6)
2016/11/06(日) 20:15:09.34ID:v3i1/z/a0そんなに似てるのあるかね?
0155デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)
2016/11/06(日) 21:12:20.71ID:OgnHco5Ep多少似たり寄ったりでも、それぞれ特化した特徴持ってるるけどな
Swiftの特徴はモダンな文法
0156デフォルトの名無しさん (ワッチョイ 1c7b-LXwf)
2016/11/06(日) 22:29:55.94ID:/loPCIEU0もう20年位経ってなかったっけ
0157デフォルトの名無しさん (ワッチョイ 1c7b-LXwf)
2016/11/06(日) 22:33:39.44ID:/loPCIEU00158デフォルトの名無しさん (ワッチョイ 91c9-GVdM)
2016/11/07(月) 04:20:28.13ID:EaPQMBZD0それらとpythonは似ても似つかない
0159デフォルトの名無しさん (ワッチョイ 7162-dKGq)
2016/11/07(月) 22:48:12.47ID:pS9bGIHw00160デフォルトの名無しさん (ワッチョイ e6d4-6WlR)
2016/11/07(月) 23:29:17.01ID:7sl1kZEM00161デフォルトの名無しさん (ワッチョイ d0c9-dKGq)
2016/11/07(月) 23:44:55.11ID:HJ3poSG100162デフォルトの名無しさん (ワッチョイ 653c-8n5s)
2016/11/08(火) 00:12:18.18ID:1VnvhNy/0そこで手に入れた言語がSwift
これで38世紀に起きる世界の破滅を救う必要がある
0163デフォルトの名無しさん (スプッッ Sd2d-DGmA)
2016/11/08(火) 07:59:40.41ID:rLbbfQNtd0164デフォルトの名無しさん (スプッッ Sd78-m5qj)
2016/11/08(火) 09:57:02.25ID:X5dOVA43dジェネリクスもc++の複雑怪奇さよりはまだ理解しやすいと思う
あとはperl並みの柔軟な正規表現処理をパクってくれれば、俺的にはかなり満足
言語では無いがXCodeで未だにswiftのリファクタリングアシスト出来ないってどういう事?
もっと本気出せ!Apple
0165デフォルトの名無しさん (ワッチョイ 718f-DGmA)
2016/11/08(火) 10:38:31.86ID:afLUgDEA00166デフォルトの名無しさん (ワッチョイ 5e93-m5qj)
2016/11/09(水) 23:28:51.38ID:LFfTZCZj0古い話を蒸し返して悪い
>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
とかじゃないかな?
0167デフォルトの名無しさん (ワッチョイ 93c9-U0zX)
2016/11/10(木) 00:35:29.26ID:il4z8U8D00168デフォルトの名無しさん (ワッチョイ 033c-teht)
2016/11/10(木) 01:04:16.66ID:CuQR47GV00169デフォルトの名無しさん (ワッチョイ 033c-teht)
2016/11/10(木) 09:31:14.04ID:R/sSrOg000170デフォルトの名無しさん (ササクッテロリ Sp2f-PwKp)
2016/11/10(木) 13:40:21.88ID:rv8wSLjJp自分でコード書いて、ほら+2でも早いじゃんって証明しよう
0171デフォルトの名無しさん (ワッチョイ 033c-teht)
2016/11/10(木) 15:15:22.92ID:R/sSrOg00http://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
こんな感じ?
ちゃんと計測になってるか分からないけど
0172デフォルトの名無しさん (スププ Sd1f-9MLS)
2016/11/10(木) 18:17:20.39ID:ftL23tGydさんきゅ、これで検証できる
手元の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%程度揺らぐが、全体的に増減する
(バックグラウンドプロセスの影響?)
同じく時間計測が正しくできてるかどうかは自信なし
あくまでも話のネタとして
0173デフォルトの名無しさん (ワッチョイ 27c9-dJcJ)
2016/11/10(木) 20:10:35.31ID:axPg+CzB00174デフォルトの名無しさん (ワッチョイ 0f93-9MLS)
2016/11/11(金) 06:58:10.97ID:VxmMYonc00175デフォルトの名無しさん (ワッチョイ 6b17-9MLS)
2016/11/11(金) 12:14:57.51ID:hH3mlRl+00176デフォルトの名無しさん (スププ Sd1f-9MLS)
2016/11/11(金) 12:24:16.45ID:IRS0wJtrdやっぱり納得できん!
コンパイラかOSにごまかされてるかもしれない
カウント値を2倍10倍にして見た、、、
計測値も相応に増えてる→OK!
うちの手元環境では今回のコードを最適化しててもループも回ってるようだし計測も出来ているようだ
でもNSDateって汎用時計で計測用じゃないから最適化バリアとか張ってなさそう
いつか嘘を付かれるかも
どうやって実行時間測るのが安全なんだろう?
XCTestのmeasurePerformanceBlockあたりかな?
0177デフォルトの名無しさん (ササクッテロラ Sp2f-PwKp)
2016/11/11(金) 14:13:36.15ID:Vk/i9jiNplibSwift.soの読み込み分も加算されると思うけども
ObjCとSwiftを比較しないならまぁ条件は一緒だろ
0178デフォルトの名無しさん (ワッチョイ 0f93-9MLS)
2016/11/12(土) 09:36:12.28ID:s1ZCIfoi0c-style forを使いたい為にswift2.xに留まる程の速度差は無いてことだな
むしろ新しい書き方の方が速いこともある
ループ内でカウンタをいじらないなら
単純にfor in strideに置き換えて構わない
0179デフォルトの名無しさん (ワッチョイ 3b53-yNdZ)
2016/11/12(土) 11:08:55.66ID:lF8fQe3F0話のタネとしてもどう反応して良いかわからん。お前馬鹿か?って反応して良いならいくらでも言えば良いがそうじゃないんだろ?
SwiftでOS書くつもりか?
forやifで悩むよりさっさとアプリ書き上げて画面突っかかるところをInstrumentsで解析してピンポイントにチューニングしてろや
基本ソフト書くレイヤーの特権階級だけが意識してれば良い事なんだよそれは
なんのためにその人たちがチューニングして生産性あげてるのか全くわからなくなる
0180デフォルトの名無しさん (ワッチョイ 3b53-yNdZ)
2016/11/12(土) 11:13:02.84ID:lF8fQe3F0○抽象度を上げて生産性を上げてる
微妙に自分の言いたい事が足りなかったので補足
0181デフォルトの名無しさん (ササクッテロリ Sp2f-PwKp)
2016/11/12(土) 11:31:47.24ID:txrMIHhIpフフってなった
そういう反応すればいいんじゃないかな
画面のカクツキとかは、アニメーションが足りてないせいかな
Apple(iOS)は昔からアニメーション等々で性能悪を誤魔化す手法を模索してきたんだから
Swiftでも多少のデメリットも誤魔化す手法をAppleから提示して欲しい
0182デフォルトの名無しさん (ワッチョイ 6b17-9MLS)
2016/11/12(土) 12:19:42.46ID:9t6wr9zS00183デフォルトの名無しさん (ワッチョイ 3b53-yNdZ)
2016/11/12(土) 19:17:05.99ID:lF8fQe3F0上で奇妙な事言ってる奴がいるがスルーするぞ
若い奴は上の頭でっかちの話は気にしないでとにかく手を動かせ
んでInstrumentsで発見した知見を蓄えろ。意外とあのオブジェクトのあのメソッドは遅いとか出てくるはずや
上で出ているfor文が問題になるケースは万に一つにもありえんと断言できる惑わされず手を動かせ
メソッド名とかこういうのの揚げ足取りが強くて手が動かせないとかは絶対に不毛だからないようにしろ
0184デフォルトの名無しさん (ササクッテロラ Sp2f-PwKp)
2016/11/12(土) 20:36:12.38ID:89uv6TPmp長いから3行でおk
0185デフォルトの名無しさん (ワッチョイ a766-9MLS)
2016/11/12(土) 21:13:25.65ID:VlXDpHXF0とか言っちゃってる人はこちらの世界には向いてないから
あのボタン押しても無反応で、一秒ぐらい待って「???」ともう一回ボタン押すと
キャッシュされた動作でいきなり2つ画面が進んじゃったりする
日本企業のクソアプリを作ったあげく、
なぜ会社の業績が傾いてるのかわからない重役共々路頭に迷ってればいいよ。
0186デフォルトの名無しさん (ワッチョイ 27c9-WFrU)
2016/11/13(日) 00:18:33.65ID:CUrdK5Xi0まぁそうだが、ただswiftって言語としてまだまだ新しすぎるんだよね。
そりゃバージョン上がればいろいろ変わるさと正直思う。
0187デフォルトの名無しさん (ワッチョイ 0f93-9MLS)
2016/11/13(日) 03:15:10.73ID:gdSsF4/Y0そんなあなたに詰めswift
コードで語るスレらしいからお気に召すと思う
0188デフォルトの名無しさん (スププ Sd1f-9MLS)
2016/11/13(日) 16:47:18.61ID:d2AUcSb3d>forやifで悩むよりさっさとアプリ書き上げて画面突っかかるところをInstrumentsで解析してピンポイントにチューニングしてろや
>>183
>応用アプリケーションのレイヤーで意識するべき事もわかってないくせに「先輩、cスタイルのfor文って実は遅いんですよ!」とか言っちゃって危険人物扱いされる人間が出ないように釘刺したかったんや
この話題ってもともとそう言う話だったと思うよ?
for each は1000倍遅い、とか言う人に対して
for文単体の速度なんて測れないし、気にする意味がない
って、話が出て
その流れでコードを書いて公開する人とか、それを条件変えるだけで簡単に結果がひっくり返るよとか言うのを公開する人が出てきた
少なくとも実測値を出してるような人たちは
1000倍遅いといった人をおちょくるために、、、、
いや、for文の速度を気にするなんて馬鹿らしい事を示すためにあえて書いてるように見えるよ
0189デフォルトの名無しさん (ワッチョイ 238c-q8zF)
2016/11/13(日) 16:58:23.64ID:wcHwfNTy00190デフォルトの名無しさん (ワッチョイ 93f8-9MLS)
2016/11/13(日) 17:13:24.59ID:ZZzhDTzs0でも、アプリケーションプログラマーであっても(あるからこそ)、OSやコンパイラは全力でユーザー(含:プログラマー)を騙しに来るというのは覚えておいて欲しいと思ってる。
「USBメモリへの書き込み速度測って見ました」
「どれどれ?物理最大速度の100倍以上出てるじゃないか!
おかしいと思わない?OSのIOキャッシュ勉強してからやり直そう」
「このデバッグプリント不要だから外しといてね」
「でも、外すとクラッシュするんです」
「よし、集中レビューしよう。そう言うのは放置しちゃダメ」
「えと、無効な変数参照してました」
「動作を見るためにウェイト入れたんですがそれでも速すぎて現象がわかりません」
「、、、ああ、空ループじゃん。コンパイラに無視されるからウェイトにならないよ」
みたいな、冗談のような本当の話
0191デフォルトの名無しさん (ワッチョイ dfec-dJcJ)
2016/11/13(日) 18:13:35.45ID:ckhnbYpT0ObjCでおk
0192デフォルトの名無しさん (ワッチョイ a766-9MLS)
2016/11/13(日) 18:31:36.30ID:0Fxu7QuG00193デフォルトの名無しさん (ワッチョイ 27c9-9MLS)
2016/11/13(日) 19:41:56.06ID:6V/fQ0Vt00194デフォルトの名無しさん (スププ Sd1f-9MLS)
2016/11/14(月) 12:29:58.52ID:RnkpU3Lyd禿同
ま、しばらくは速度ネタで荒らそうとする奴は出んだろう
出たところで笑い飛ばせば済む話
0195デフォルトの名無しさん (ワッチョイ 033c-teht)
2016/11/14(月) 18:24:15.65ID:JW47M78W0トレーリングクロージャめいた構文でも良かったと思う
http://swiftlang.ng.bluemix.net/#/repl/5829827ba56869580c9719a5
0196デフォルトの名無しさん (ブーイモ MM6f-yNdZ)
2016/11/14(月) 20:00:07.79ID:9JJaNF23MJavaにnil安全が導入されるのとObjCにnil安全が導入されるのではまるでインパクトが違う
そこが理解できてないのに長ったらしい文章でnil安全の優位性訴えて空振りしてるのが笑える
0197デフォルトの名無しさん (ワッチョイ 238c-q8zF)
2016/11/14(月) 20:14:57.91ID:7uicpZxO0あれかObjCのMember/Class Propertyのnil非安全化に対してSwiftのPropertyはnil安全だから、昔のObjCの意志を継いだ的な感じか
>>195
シンプルだな
便利そうだからMLだかで提案してみてくれよ
0198デフォルトの名無しさん (ワッチョイ 27c9-dJcJ)
2016/11/14(月) 20:34:20.36ID:rIoU2mi10他になんかnilを上手く扱える仕組みあったっけ
0199デフォルトの名無しさん (ワッチョイ 138f-PwKp)
2016/11/15(火) 04:22:43.03ID:HGK9Tpoq0存在しないメッセージ式にnullを返してるだけ。
それって問題の先送りでしかないから、
javaのヌルポより悪だと思う。
0200デフォルトの名無しさん (ワッチョイ 138f-PwKp)
2016/11/15(火) 04:29:11.24ID:HGK9Tpoq0値が入ってることが保証されてることだと思う。
コンパイラがnullが入ってる可能性を指摘してくれるのはマジで便利。
jsもtypescriptでできるから手放せないな。
信者といえばそうだけど、
使わないことのメリットがあるなら教えて欲しい。ないでしょ?
0201デフォルトの名無しさん (ワッチョイ 0f93-9MLS)
2016/11/15(火) 07:35:58.33ID:yuOO+PuR0じゃ、お前さんはObjCの上で
cのヌルポインタとか無効なポインタを踏んでろ
0202デフォルトの名無しさん (ワッチョイ 3b53-yNdZ)
2016/11/15(火) 09:06:06.85ID:NUkfEkc00ふぇぇとなる世界の住人がいる事もわかってないと
ただunwrap codeが増えて面倒だと思ってる層を説得できないだろうな
0203デフォルトの名無しさん (ワッチョイ 27c9-dJcJ)
2016/11/15(火) 10:38:09.96ID:U3Mmtdzs00204デフォルトの名無しさん (ササクッテロリ Sp2f-wOPQ)
2016/11/15(火) 10:43:21.89ID:aNrG6800p>>194を筆頭に煽りたいだけの荒しだから、nil論争は無意味
なんの技術根拠もなく煽ってるだけだろ
0205デフォルトの名無しさん (スププ Sd1f-9MLS)
2016/11/15(火) 12:32:15.34ID:HncvCIt2dまた聞きかじり煽りか
そんな他言語に対する優位性なんて視点でnil安全を語ってる所なんて見た事ないぞ、
どこの話だ?
チュートリアル系のサイトで
オプショナル型の取り扱いがめんどくさいといってるswift初心者に
これはコンパイラの優しさだから頑張って使いこなそうね
的な話なら時々見るけど
0206デフォルトの名無しさん (スププ Sd1f-9MLS)
2016/11/15(火) 12:33:08.60ID:HncvCIt2dガッ!
0207デフォルトの名無しさん (スッップ Sd1f-PwKp)
2016/11/15(火) 16:56:54.36ID:JG3cBSAhdぬるぽ
0208デフォルトの名無しさん (ワッチョイ 238c-F9Kl)
2016/11/15(火) 19:22:16.20ID:eNNQwyG50どこのサイト?聞きかじりの根拠ない煽りか?
0209デフォルトの名無しさん (ワッチョイ 0f93-amCg)
2016/11/15(火) 19:51:29.05ID:yuOO+PuR0もちろん聞きかじりだよ。
例えばこんな所の
http://stackoverflow.com/questions/24034483/what-is-an-unwrapped-value-in-swift
0210デフォルトの名無しさん (ワッチョイ 238c-F9Kl)
2016/11/16(水) 08:08:29.44ID:f3JQk4xB0QAサイトをチュートリアルに使うのはきっついなぁ、まだQiitaの方がマシだろうに
0211デフォルトの名無しさん (スププ Sd1f-9MLS)
2016/11/16(水) 08:39:46.43ID:KIDCbNFDdswiftのチュートリアルに関しては
StackOverflowが当たり率が高い気がする
0212デフォルトの名無しさん (ワッチョイ 62ec-Th+s)
2016/11/17(木) 08:12:31.29ID:ZZmJDmDd0Qiitaはステマ臭がハンパないから読む気しない
0213デフォルトの名無しさん (スププ Sdb8-N7ik)
2016/11/17(木) 08:52:06.18ID:UnJh5aZNdrubyみたいでかわいいね
ところでIBM SwiftSandboxに書いたコードを
引用する方法を教えてもらえたら嬉しい
0214デフォルトの名無しさん (ワッチョイ c13c-XpIe)
2016/11/17(木) 08:58:37.73ID:GXbz24lT0nameとかは空欄でもいい
0215デフォルトの名無しさん (スププ Sdb8-N7ik)
2016/11/17(木) 11:14:32.54ID:UnJh5aZNdさんきゅ
0216デフォルトの名無しさん (ササクッテロラ Spa9-RUi6)
2016/11/19(土) 11:39:54.42ID:K0z8adqwpswift.orgのブログを暇潰しに読んでみたら
Whole-Module Optimizationとか今実装進めてるのか
まだまだ最適化の余地は残ってそう
0217デフォルトの名無しさん (スププ Sdb8-1ibN)
2016/11/19(土) 19:51:18.37ID:kCSsFgN3dそれは意識が高いとか低いとかの問題じゃなくて
日本語の情報量が圧倒的に少ないから自然に英語サイトにたどり着くだけでは?
0218デフォルトの名無しさん (ワッチョイ 6353-mj3c)
2016/11/19(土) 21:02:27.53ID:kBqtqEES0ObjC移行組にとってはNull安全のメリデメはトントンくらいにならない
そこじゃなくて、そのnull安全を実現しているenumやノマドとかが素晴らしく有用なのであって
null安全をアピールしてる人間はObjCerから見ると補助輪付き自転車を渡してきてこれ安全だから絶対に乗れよと言ってくる頭おかしいおじさんにしか見えない
Swift移行がこじれるだけだから黙っといて欲しい
0219デフォルトの名無しさん (ワッチョイ 6353-mj3c)
2016/11/19(土) 21:24:55.41ID:kBqtqEES0ObjCerから見ると
>苦労して自転車が乗れるようになった人間に対して
補助輪付き自転車を渡してきて〜
Null安全の有用さを否定してるわけじゃないんだがObjCでiOS開発に慣れた人間が困るポイントでもないんだよそこは。実際お前らNull安全なくて詰んだことあるか?
もっと美味しいところがあるのになぜNull安全を推す?理解に苦しむ
0220デフォルトの名無しさん (ワッチョイ 5138-svKO)
2016/11/19(土) 21:38:25.43ID:eI+Z2SFt0The Swift Programming Language (Swift 3)
=> チュートリアルとして分かる
Qiitaの有象無象の記事
=> 特定の項目に対してはいろはから説明してるものもあるのでまだ分かる
stackoverflowのQA
=> 特定の問題の原因/解法を調べるには良いが、チュートリアルには使えない
取り敢えず、stackoverflowを挙げとけばいいってのはヤツは意識高い系
最近のSwiftは知らんけど、betaの頃はstackoverflowよりqiitaの方が良かったな
Apple信者と意識高い系がアホほどSwift記事挙げてたからスッゲー充実してた
>>218
ageるのやめて、nil safeとNull安全の用語ミス直して出直せw
ちょいちょいワッチョイ変えたりして煽ってるけどズレてて笑いを誘う
0221デフォルトの名無しさん (ワッチョイ 6353-mj3c)
2016/11/19(土) 21:48:50.94ID:kBqtqEES0Swiftの3大移行が進まない理由は「バカが型推論が遅いと吹聴する」「謎のNull安全推し」「破壊的変更というパワーワードにビビって触らない」だな
0222デフォルトの名無しさん (ワッチョイ f693-1ibN)
2016/11/20(日) 00:23:49.87ID:kc7cu4Co0それ、昔は大変だったのに今時の若いもんは、、、的にしか聞こえない
マニュアル車の免許取るのは大変だったのに、
オートマ車なんてもんが出てきやがって
友達と外で会う約束をするときには場所と時間をきっちり決めて
さらに待ち合わせに失敗した場合のために第二次集合ポイントまで決めていたもんなのに
携帯電話なんてもんが出てきたせいで、待ち合わせの仕方が変わってしまって迷惑じゃ無いか
0223デフォルトの名無しさん (ワッチョイ f693-1ibN)
2016/11/20(日) 00:42:06.86ID:kc7cu4Co0すまんがswift3移行は進んでいないのか?
ウチは全プロジェクト移行済みだから実感がない
随分前からXCodeが警告出してくれてるようになってたから全然問題なかった
と、言いたいところだが、実際は自動移行がへぼくて苦労したところもあった
でも、パターンがわかればあとは機械的に置き換えるだけで済んだから無問題
ま、他所が移行してなくてもウチには関係ないか
困るのは初心者向けの手頃な教科書が無いところ
0224デフォルトの名無しさん (ワッチョイ 4066-N7ik)
2016/11/20(日) 04:07:43.09ID:FtYcGfnw0>ウチは全プロジェクト移行済みだから実感がない
ご愁傷様です(-人-)
0225デフォルトの名無しさん (ワッチョイ 9cba-RUi6)
2016/11/20(日) 10:38:12.68ID:2y7SIl1/0うぷぷぷぷ
0226デフォルトの名無しさん (ササクッテロラ Spa9-RUi6)
2016/11/20(日) 11:01:10.26ID:GIAqLfHRppodなんかで外のライブラリが移行してないと面倒だけどなぁ
ObjCライブラリを選定して使ってれば関係ないか
0227デフォルトの名無しさん (ワッチョイ e0c9-Th+s)
2016/11/20(日) 11:36:07.75ID:hZLIxGFv0>ノマド
0228デフォルトの名無しさん (スププ Sdb8-1ibN)
2016/11/20(日) 19:17:35.30ID:cjIN9+jzd0229デフォルトの名無しさん (ササクッテロラ Spa9-RUi6)
2016/11/20(日) 19:21:10.60ID:GIAqLfHRp0230デフォルトの名無しさん (ワッチョイ bdc9-/WwX)
2016/11/20(日) 20:31:18.15ID:HG1JDYXN0死語
0231デフォルトの名無しさん (ワッチョイ c13c-XpIe)
2016/11/20(日) 23:01:46.43ID:j5d8SBLe00232デフォルトの名無しさん (ワッチョイ 56e5-1ibN)
2016/11/21(月) 00:10:47.09ID:0fuIyKtv00233デフォルトの名無しさん (ワッチョイ e0c9-hkLf)
2016/11/21(月) 01:01:50.73ID:OT/+RMzH00234デフォルトの名無しさん (ワッチョイ 62ec-Th+s)
2016/11/21(月) 08:16:30.33ID:t97dgSt20>>219
>>221
Swiftマンセー!!!!
お前ら世界一すばらしい言語Swift使わないとかねえから
0235デフォルトの名無しさん (スププ Sdb8-1ibN)
2016/11/21(月) 09:15:18.98ID:dBt3Nlsvdモナドって何ですか?
Swift始めて1年の初心者ですが、教科書や公式ドキュメントで一度もモナドという言葉を見かけなかったもので
このスレで時々出てくるんですがさっぱり分かりません
ググってもSwiftと関係なさそうな難しい話ばかり
0236デフォルトの名無しさん (ササクッテロラ Spa9-svKO)
2016/11/21(月) 12:23:22.81ID:0HSHfyI4p時々ってどこで見たのやらw
0237デフォルトの名無しさん (JP 0H85-/WwX)
2016/11/21(月) 12:49:54.02ID:goLgdzFNHhttp://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/モナド_(プログラミング)
0238デフォルトの名無しさん (ワッチョイ c13c-XpIe)
2016/11/21(月) 13:04:46.91ID:u6SvyuER00239デフォルトの名無しさん (ワッチョイ c13c-XpIe)
2016/11/21(月) 13:53:49.89ID:u6SvyuER0http://echo.2ch.net/test/read.cgi/tech/1458491528/
>>235
これとか読んでみては
http://qiita.com/koher/items/c6f446bad54442a28bf4
0240デフォルトの名無しさん (スププ Sdb8-1ibN)
2016/11/21(月) 19:20:39.79ID:dBt3Nlsvd>>239
さんきゅ、でもやっぱり難しいです
読みながら居眠りしちゃった、まじ
イメージとしてはmapとかreduceとかコレクション全体に対する操作がモナド?
それとも普通にSwift使ってる分には気にする必要ない?
ちなみに新参者なので過去スレ読んでます
どこにモナドが出てきたかまでは覚えてない
0241デフォルトの名無しさん (ワッチョイ c13c-XpIe)
2016/11/21(月) 20:00:00.80ID:u6SvyuER0とりあえずflatMapが分かっていればいいんじゃない
入れ物がモナド、目的は分離/隔離
モナド則は使う側であればあまり気にしなくていい
圏論はガチ勢の領域
0242デフォルトの名無しさん (ワッチョイ 4066-N7ik)
2016/11/22(火) 02:21:40.07ID:Hr9qjU/90昔からある種の理論原理主義者たちは「そういうことができる」じゃなくて
「そういうことしか許さない」プログラミング言語ができたら最強だよね!をやっては
パラダイムシフトごとに小爆発を繰り返しながら沈んでいってる気がする。
0243デフォルトの名無しさん (スププ Sdb8-1ibN)
2016/11/22(火) 06:16:26.13ID:hXJLaKmWdありがと
詳しく知ったからといって、swiftプログラミングが楽になるようなものでもなさそうなので
気にしない事にします
少し前に出てたnil安全とか言うのも、教科書に出てこなかった言葉なんですが
何となくオプショナルバインディングの事かなと思って、ふーんとか思ってます
0244デフォルトの名無しさん (ワッチョイ c13c-XpIe)
2016/11/22(火) 19:01:43.67ID:wbWt9J7e0nilを入れられない参照型を作れること
0245デフォルトの名無しさん (スププ Sdb8-1ibN)
2016/11/22(火) 21:58:58.03ID:hXJLaKmWdわかった!ウチにはわからんという事が
もう少しスキルアップするまでは気にしない事にします
0246デフォルトの名無しさん (ワッチョイ cf93-fk+P)
2016/11/27(日) 23:09:56.46ID:2n34pXhS00247デフォルトの名無しさん (ワッチョイ ffec-MM3T)
2016/11/30(水) 23:56:22.22ID:48Nf+yqm0>詳解Swift3
https://www.amazon.co.jp/dp/4797390530/
Now Printig wwwwwwwwwwwwwww
0248デフォルトの名無しさん (ワッチョイ 50c9-E9Xg)
2016/12/02(金) 00:29:52.11ID:6eHu8gFg00249デフォルトの名無しさん (ササクッテロロ Sp8d-25R2)
2016/12/02(金) 17:41:07.77ID:KSpIywEmp第2版のキンドル版を買った人には無償で配るべきだろ。
0250デフォルトの名無しさん (ワッチョイ 6b1a-/mAi)
2016/12/02(金) 19:57:46.14ID:glZ3suWJ00251デフォルトの名無しさん (ワッチョイ 50c9-E9Xg)
2016/12/03(土) 01:32:23.12ID:xePRMTW90ibmに言ってやれ
0252デフォルトの名無しさん (ワッチョイ 4101-yaSi)
2016/12/03(土) 17:40:32.03ID:LP4g2t+V0http://bipblog.com/archives/5311083.html
0253デフォルトの名無しさん (ワッチョイ 50c9-Cf2b)
2016/12/03(土) 18:00:15.33ID:jLjlCp4b0勉強を始めるきっかけに至る遠因のうちの一つ、ぐらいにはなるかもしらんが
0254デフォルトの名無しさん (スフッ Sda8-wK09)
2016/12/07(水) 12:08:20.07ID:nQKCcTcRd紙版買った人にも安価なアップグレードパスが欲しい
0255デフォルトの名無しさん (アウアウウー Sa19-M/0O)
2016/12/07(水) 15:43:37.17ID:+GcuVx5ha0256デフォルトの名無しさん (ワッチョイ 753c-Cf2b)
2016/12/07(水) 16:42:09.20ID:3hVk66ux0プログラマならコードで語れよ
0257デフォルトの名無しさん (アウアウウー Sa19-M/0O)
2016/12/07(水) 17:05:47.74ID:+GcuVx5ha@Objcがいるんやな
0258デフォルトの名無しさん (ワッチョイ 3e93-wK09)
2016/12/07(水) 21:49:12.92ID:kEgAfPTA0う〜ん?
コード見てないからわかんないけどなんか違う気がする
0259デフォルトの名無しさん (ササクッテロリ Sp8d-v8zE)
2016/12/07(水) 22:18:03.37ID:04THRhb6p1.0とかの頃にノウハウとして使ってたわ
しかしまぁ今からやるならバッドノウハウよな
0260デフォルトの名無しさん (アウアウウー Sa19-YOWX)
2016/12/07(水) 23:22:18.33ID:frww6tdlafunc method1()
optional func method2() ←エラー 'optional' can only be applied to members of an @objc protocol
}
↓
↓
@objc protocol testProtocol {
func method1()
@objc optional func method2()
}
これでうまく動いたんだけどやり方まずいですか?
0261デフォルトの名無しさん (ワッチョイ 9b3c-drn7)
2016/12/08(木) 07:39:50.56ID:Xgf0Zqhi0こういう意見もある
http://blog.stablekernel.com/optional-protocol-methods-in-pure-swift
コード
http://swiftlang.ng.bluemix.net/#/repl/58488e3134efab1c6b31be5d
0262デフォルトの名無しさん (スフッ Sd2f-YmwQ)
2016/12/08(木) 10:12:52.67ID:Y2Zm3Xi7d使う側のコードが分からないからなんとも言えないけど
基本的に@Objc装飾子はObjective-Cプログラムに引き渡すコード・データに付けるものだから
仮に単純にswiftのプログラムであるとするなら@Objcが出てくる事に違和感がある
必要な時は必要なんだけどさ
0263デフォルトの名無しさん (アウアウウー Sa47-IVaD)
2016/12/08(木) 10:37:41.68ID:gKAxGgXua装飾しつけないやり方ってどうやるんですか?
0264デフォルトの名無しさん (ワッチョイ 9b3c-Ts63)
2016/12/08(木) 10:51:52.94ID:6PCHYR3j0>>261見ろよ…
0265デフォルトの名無しさん (アウアウウー Sa47-IVaD)
2016/12/08(木) 11:11:12.83ID:gKAxGgXua0266デフォルトの名無しさん (オイコラミネオ MM4f-YmwQ)
2016/12/08(木) 11:27:40.79ID:hXTPpY/nM今後全て消える?
0267デフォルトの名無しさん (オイコラミネオ MM4f-YmwQ)
2016/12/08(木) 12:05:08.44ID:hXTPpY/nM0268デフォルトの名無しさん (ササクッテロリ Sp27-JVDy)
2016/12/08(木) 16:08:42.85ID:bAdCGSgKp「手法」じゃなく冒頭の「意見」の部分読んだら
> Swift code should take another approach
って言ってるぞw
0269デフォルトの名無しさん (ワッチョイ 1b1d-YmwQ)
2016/12/10(土) 16:30:41.11ID:3iED4EzH0まだ、Swiftの記述になってないね( ´Д`)y━・~~
0270デフォルトの名無しさん (ワッチョイ 8b23-WerT)
2016/12/10(土) 16:35:07.62ID:oFE2vaPJ00271デフォルトの名無しさん (JP 0H47-XlRU)
2016/12/10(土) 16:48:21.29ID:qQjpy7DvH0272デフォルトの名無しさん (ササクッテロラ Sp27-JVDy)
2016/12/10(土) 17:16:53.32ID:zoVCCI8QpiOS 3.0+
macOS 10.12+
tvOS 3.0+
watchOS 2.0+
なぜiOS3の化石を移植したし
別名の同程度機能を持ったクラス作れば良かったのにな
0273デフォルトの名無しさん (スッップ Sd2f-WerT)
2016/12/10(土) 17:19:24.01ID:8DqJYhuzd0274デフォルトの名無しさん (ワッチョイ 37c9-Ts63)
2016/12/10(土) 20:02:36.75ID:djg+OUUZ00275デフォルトの名無しさん (ワッチョイ cb17-YmwQ)
2016/12/10(土) 21:08:11.89ID:jnTTSzju00276デフォルトの名無しさん (ワッチョイ 8b8f-6LJV)
2016/12/11(日) 06:35:20.34ID:BAivgHXg00277デフォルトの名無しさん (ワッチョイ d33c-q+wp)
2016/12/11(日) 06:44:58.52ID:CPi1f3h000278デフォルトの名無しさん (アウアウエー Sa7f-ZMVm)
2016/12/12(月) 14:22:12.85ID:AazRvE9rahttps://swift.org/blog/swift-3-1-release-process/
0279デフォルトの名無しさん (ササクッテロリ Sp27-JVDy)
2016/12/12(月) 20:55:22.91ID:Xm48GD4Ophttps://swift.org/server-apis/
0280デフォルトの名無しさん (ワッチョイ 8b23-WerT)
2016/12/13(火) 07:44:48.32ID:aGvNEn/F0仕様変わりすぎでどうせ廃れるのにいつまで更新するの?
0281デフォルトの名無しさん (スフッ Sd2f-YmwQ)
2016/12/13(火) 08:28:32.83ID:CT9GP8dCdby すとらうすとらっぷ
0282デフォルトの名無しさん (スッップ Sd2f-WerT)
2016/12/13(火) 09:26:53.84ID:73HQpuIOd0283デフォルトの名無しさん (ワッチョイ 37c9-Ts63)
2016/12/13(火) 11:56:20.21ID:KXUQsQXn00284デフォルトの名無しさん (エムゾネ FF2f-XlRU)
2016/12/13(火) 12:17:59.60ID:hu4l98UtF0285デフォルトの名無しさん (ワントンキン MMef-YmwQ)
2016/12/14(水) 22:24:17.22ID:HfWj6KVmM0286デフォルトの名無しさん (ワッチョイ 4fe5-Bhnc)
2016/12/14(水) 23:22:54.02ID:yky6KY2t0http://unicode.org/emoji/charts-beta/full-emoji-list.html
0287デフォルトの名無しさん (ササクッテロラ Sp29-nol0)
2016/12/15(木) 08:29:23.14ID:CehXfGlIp今時、サポートしてるだろ
0288デフォルトの名無しさん (オイコラミネオ MM34-jFiT)
2016/12/15(木) 12:47:12.71ID:K7xig0SVM0289デフォルトの名無しさん (ワッチョイ 413c-i+Qt)
2016/12/15(木) 20:39:21.84ID:aXGD97Aa0https://www.codecaptain.io/blog/ios-development/get-all-available-emoji-using-the-objective-c-runtime/15
objcだけど、これでなんとかなったりしない?
うまくいったら教えてよ
0290デフォルトの名無しさん (ブーイモ MMb8-Nqhn)
2016/12/15(木) 22:22:11.29ID:lLtgDovqM0291デフォルトの名無しさん (ワッチョイ 413c-i+Qt)
2016/12/16(金) 00:22:16.63ID:mSiPAeok0それだとOS毎に使える範囲調べて調整しないといけないから、結果的にめんどくさいじゃん
と他人事ながら思うんだけど
0292デフォルトの名無しさん (ブーイモ MMb8-Nqhn)
2016/12/16(金) 12:54:32.41ID:I9PtonJVM絵文字を扱える統一コードはunicodeしかないのだからosに依存せず一意でしょ。
0293デフォルトの名無しさん (ワッチョイ 413c-i+Qt)
2016/12/16(金) 13:40:25.16ID:+Tc7Ug9p0そういうことじゃない
バージョン毎に使える絵文字(や肌の色など)が増えてるのさ
0294デフォルトの名無しさん (ブーイモ MMb8-Nqhn)
2016/12/16(金) 13:59:22.75ID:I9PtonJVMそれフォント依存。
0295デフォルトの名無しさん (アウアウウー Sa05-9Iap)
2016/12/16(金) 14:34:23.30ID:MTMicKBAa0296デフォルトの名無しさん (ササクッテロラ Sp29-nol0)
2016/12/16(金) 14:40:32.73ID:vMl/sGICpswiftはマルチOS、任意文字コードで動かされる可能性のある言語だろ?(白目
0297デフォルトの名無しさん (スプッッ Sdc8-I7lW)
2016/12/16(金) 15:15:48.07ID:bXGI3+Qzdこマ?
0298デフォルトの名無しさん (ワッチョイ 413c-i+Qt)
2016/12/16(金) 15:50:44.50ID:+Tc7Ug9p0iOSの場合、実質バージョン依存とどう違うん?移植なんてする奴なんてごく一部じゃねーか
0299デフォルトの名無しさん (オイコラミネオ MM34-jFiT)
2016/12/16(金) 16:04:57.00ID:bO3N4lsnMおいおい
0300デフォルトの名無しさん (アウアウウー Sa05-9Iap)
2016/12/16(金) 22:24:42.15ID:MTMicKBAa0301デフォルトの名無しさん (ワッチョイ 413c-0G5/)
2016/12/16(金) 23:41:13.06ID:G52QpNky0次にログを見ます
0302デフォルトの名無しさん (アウアウウー Sa05-9Iap)
2016/12/17(土) 06:22:29.26ID:4fBoIIO7aログがわかりません!
0303デフォルトの名無しさん (ササクッテロリ Sp29-nol0)
2016/12/17(土) 10:44:05.49ID:TkPf6t45pここに迷い混んだiOS関連質問者は初心者スレ行け、>>1からも飛べる
swiftに関係ない質問すると遊ばれちゃうよ
0304デフォルトの名無しさん (ブーイモ MM8d-Nqhn)
2016/12/17(土) 15:55:42.03ID:vQpe99jEM勝手に条件絞られたら知るかとしか答えられないよ。
>>296
標準規格で絵文字を扱えるのはunicodeしかないからだよ。
0305デフォルトの名無しさん (ササクッテロリ Sp29-fQwo)
2016/12/17(土) 18:28:20.34ID:TkPf6t45p>>290ってそんなに簡単じゃねーだろ、と思いつつ考えないようにしてたけど++すんのやっぱりメンドイ
UInt8からUnicodeScalar作って、そこからCharacter作って、一般用途には更にStringにすんのかな
ttp://swiftlang.ng.bluemix.net/#/repl/58550325b5619f13e0a93d13
Swiftは相変わらずオブジェクトの多段生成が鬱陶しいのう
extensionで省略できるから勝手にしろってスタンスなのかもだけど、Framework APIの在り様が好きになれない
0306デフォルトの名無しさん (ワッチョイ 413c-0G5/)
2016/12/18(日) 00:11:09.02ID:UYhf7FJp00307デフォルトの名無しさん (ワッチョイ 56e5-jFiT)
2016/12/18(日) 10:19:10.98ID:9XJnJRxF00308デフォルトの名無しさん (スフッ Sdb8-f0Z7)
2016/12/20(火) 19:27:56.22ID:vNqc8Ywld国旗も入れてください
0309デフォルトの名無しさん (シャチーク 0C54-uX3G)
2016/12/21(水) 11:36:55.50ID:GYB+hQbmChttp://www.unicode.org/versions/components-9.0.0.html
http://www.unicode.org/Public/9.0.0/ucd/EmojiSources.txt
0310デフォルトの名無しさん (ワッチョイ 413c-0G5/)
2016/12/21(水) 11:59:56.06ID:xZVHhTrr0国旗だけ
https://swiftlang.ng.bluemix.net/#/repl/5859eea46d21191312f171cc
国コード一覧
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
0311デフォルトの名無しさん (スフッ Sdb8-X9Fs)
2016/12/21(水) 18:40:04.69ID:TE+vjmu6dこれはすごい
2文字国コードを全パターン生成してユニコード化するとは
ucs4が21ビットに制限された時は絶望したが
UTF32割と上手く作られてるなぁ
0312デフォルトの名無しさん (ワッチョイ e03c-i+Qt)
2016/12/21(水) 18:44:49.36ID:jZ5HwhFO0Risってどういう意味?
0313デフォルトの名無しさん (ワッチョイ 413c-0G5/)
2016/12/21(水) 21:29:06.87ID:xZVHhTrr0Regional Indicator Symbol (U+1F1E6から始まる地域コード用のアルファベット)の頭字語
0314デフォルトの名無しさん (ワッチョイ 7910-Azor)
2016/12/21(水) 21:55:35.03ID:pOOrMtXX0UTF32じゃなくてUnicodeの合字システムが上手く作られてる、じゃないの?
RIS2文字が合字として国旗1文字(?)として表示されるようになってるはずだけど
0315デフォルトの名無しさん (アウアウウー Sa05-9Iap)
2016/12/21(水) 21:56:20.04ID:5lzFM20Ca0316デフォルトの名無しさん (ワッチョイ e03c-i+Qt)
2016/12/21(水) 22:57:01.50ID:jZ5HwhFO0�d
0317デフォルトの名無しさん (ワッチョイ 413c-AUQK)
2016/12/21(水) 23:02:50.14ID:6utLXA1y00318デフォルトの名無しさん (ワッチョイ bfb5-g5tI)
2016/12/21(水) 23:38:24.23ID:TqJ5vR9v0swift.orgのガイドラインをガン無視で笑う
0319デフォルトの名無しさん (ワッチョイ e0c9-6+SE)
2016/12/21(水) 23:49:08.43ID:RCM7Zvqs0ちょっと前に文字コードスレで話題になってたけど
[SE]スウェーデン国旗
[ES]スペイン国旗
[SE][SE]でスウェーデン国旗*2のつもりが
スウェーデン国旗が絵文字フォントに入ってなかったら
[S][ES][S]でスペイン国旗に実際に化けたりする
同じUnicodeのサロゲートペアは、上位と下位でコードブロック分けられてるから必ず[上位][下位]の組み合わせでペアの区切りを判別できるようになってたのに、
後発のRegional Indicator Symbolはそれをしなかった
責任者出てこいって感じ
0320デフォルトの名無しさん (ワントンキン MM3f-q7cB)
2016/12/22(木) 09:57:05.57ID:i/pZa1E8M0321デフォルトの名無しさん (ワッチョイ bf32-hWIT)
2016/12/22(木) 10:50:51.81ID:qTtm125Z0それは駄目だろ……1ビット上位下位を区別する情報入れられれば……
0322デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/22(木) 12:17:57.82ID:/ytrOsGa0何考えて入れたんだこんなの
0323デフォルトの名無しさん (ワッチョイ 1f93-W3gD)
2016/12/23(金) 11:40:23.82ID:dCUGoqXg0Swiftのstringは良く出来てるよな
背景を知らないとクソ使いにくいだけなんだが
0324デフォルトの名無しさん (ササクッテロリ Spcf-4tq9)
2016/12/23(金) 16:01:01.15ID:mdacHMN9p2010年代で使われ始めた言語は総じてそんなものだろ
0325デフォルトの名無しさん (ワッチョイ 1f93-W3gD)
2016/12/24(土) 04:53:12.35ID:Kb337a0Z0とりあえずおまいが文字列で困った経験が無いことは分かった
浅学ながら2010年以降にリリースされた言語をSwift以外に知らないが
0326デフォルトの名無しさん (ワッチョイ bf42-GMQd)
2016/12/24(土) 09:31:27.94ID:qYWxKasf0もともとそのつもりだったのに諦めたのはutf-16だけだろ。
0327デフォルトの名無しさん (ワッチョイ 572b-1x4y)
2016/12/24(土) 11:13:10.13ID:8cn52jEt0プログラミング言語の文字(列)は早々に固定長諦めて可変長に
0328デフォルトの名無しさん (ワッチョイ e342-i2qZ)
2016/12/25(日) 13:01:46.70ID:LALK6bkG026文字しか把握できないヤンキーの発想だから
0329デフォルトの名無しさん (スフッ Sd9f-W3gD)
2016/12/25(日) 16:22:48.74ID:dXQe++nzdユニコードの国旗を1文字として
取り扱ってくれるようなプログラミング言語はまだ少ないと思うな
内部を隠蔽して複数のビューを通じて取り出せるのも嫌いじゃない
文字列が危険物であると言う主張が伝わってくる
あとは正規表現ライブラリの使いやすいのが提供されれば嬉しい
個人的な好みだけで言うとRubyの文字列の方が好きなんだけど
0330デフォルトの名無しさん (ワッチョイ bf42-GMQd)
2016/12/25(日) 21:35:08.96ID:LfSOKVhB032もあるからね
0331デフォルトの名無しさん (スッップ Sddf-rd9B)
2016/12/26(月) 08:33:15.74ID:ZBFCqPGMd一旦服を着た方が良いよ
0332デフォルトの名無しさん (スププ Sd9f-W3gD)
2016/12/26(月) 08:38:33.30ID:+y9otMfadせめて32bitフルに使ってくれればいいものを
21bitしか使わないなんて中途半端なことをしてくれるから
筋の悪いUTF16なんか早々に捨てちゃえば良かったのに
0333デフォルトの名無しさん (ササクッテロラ Spbf-vGip)
2016/12/26(月) 14:42:52.42ID:mhrTCx4Up0334デフォルトの名無しさん (アウアウウー Sa0f-dZB4)
2016/12/26(月) 15:08:39.98ID:3l7Xk6fYa0335デフォルトの名無しさん (ワッチョイ 8fc9-aM8P)
2016/12/26(月) 15:22:17.28ID:TRnwbnfO0宇宙人とシームレスに文書交換ですね
0336デフォルトの名無しさん (ワッチョイ 8fc9-aM8P)
2016/12/26(月) 16:20:07.97ID:TRnwbnfO0http://japan.cnet.com/news/service/35094249/?tag=as.latest
0337デフォルトの名無しさん (ワッチョイ ef1d-W3gD)
2016/12/27(火) 09:45:54.40ID:emRcq3HU00338デフォルトの名無しさん (スップ Sd9f-auU4)
2016/12/27(火) 10:43:59.74ID:tr0nUT2nd0339デフォルトの名無しさん (ササクッテロリ Sp4f-vGip)
2016/12/27(火) 11:51:09.22ID:sIydEYNyp>>334
毎年言語仕様を楽しませる感じに変更する所
いつも楽しく遊ばせて貰ってマス
0340デフォルトの名無しさん (ワッチョイ 0fbc-Jkes)
2016/12/27(火) 12:56:35.72ID:IWLnDm1d00341デフォルトの名無しさん (ササクッテロリ Sp4f-vGip)
2016/12/28(水) 07:01:13.93ID:j4SHG8/Apそれをアポーが開発、保守してるのはウケる
いつコミュニティベースにして手を引くのか
4か5か、遠くもない未来だと思うんだけどなぁ
0342デフォルトの名無しさん (ワッチョイ 1f93-W3gD)
2016/12/28(水) 08:06:02.31ID:Obj5weA10すまんうちはiOSアプリの新規プロジェクトはSwiftが第一選択肢だ
0343デフォルトの名無しさん (ワッチョイ 37c9-hFe5)
2016/12/28(水) 08:28:26.01ID:bvnjBJpz0それは文法的にスジが悪いってこと?
それともまだ安定してないってこと?
前者ならObjCのほうが悪そうだし。
後者ならまだ新しいせいだし(mozillaのrustなんて1.0になるまで酷かった)。
それもほかに何かある?
0344デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
2016/12/28(水) 08:38:48.68ID:yWrP/m5t00345デフォルトの名無しさん (ワッチョイ 0fbc-Jkes)
2016/12/28(水) 09:43:05.22ID:61DJDhP40まじか、やべぇな...
0346デフォルトの名無しさん (ワッチョイ 6f10-YQ1g)
2016/12/28(水) 10:33:18.69ID:08RViD+L0逆に請負のアプリなんかで次回の発注次第で大規模なアップデートするかしないか決まる、みたいなのだったらObjective-Cがいいんじゃないの?
要は言語仕様が変更されるかもしれないコストと実装そのもののコストの差を比較してどっちが低くなるかだと思うから
お客さんにとっては言語の仕様が変わったので今回は軽微なアップデートですが工数が余計にかかりますというのは納得ができないだろうしね。
0347デフォルトの名無しさん (スップ Sdff-6FRj)
2016/12/28(水) 10:38:56.02ID:bODOsbQ2d「メインサービスのアプリとか」の「とか」は、「メインサービスのアプリ」以外の何?
0348デフォルトの名無しさん (ワッチョイ 8fc9-aM8P)
2016/12/28(水) 12:29:13.03ID:kFL7wfb20次の保守が何年後か知らんけど
古いバージョンのswiftとか
だれも読めなくなってるよな
0349デフォルトの名無しさん (アウアウウー Sa0f-RXuE)
2016/12/28(水) 13:07:21.93ID:a+zBu4aja0350デフォルトの名無しさん (ワッチョイ 0fbc-Jkes)
2016/12/28(水) 13:36:15.97ID:61DJDhP40Objective-CはC言語知ってれば普通の人ならちょこっとのコストで習得できっから
0351デフォルトの名無しさん (ワッチョイ ab66-DLF2)
2016/12/28(水) 23:06:32.13ID:zgsLwAdc0から、Objective-C来ると「最初からこれにしろ!」ってなる。
0352デフォルトの名無しさん (ワッチョイ 865b-4xst)
2016/12/29(木) 00:28:34.96ID:lKSLRFPi00353デフォルトの名無しさん (ワッチョイ 6a93-qQw5)
2016/12/29(木) 00:40:51.81ID:lVIy8RIr0c++は別の世界
踏み込みすぎると暗黒面に引きずり込まれます
Swiftの方が安全
0354デフォルトの名無しさん (ワッチョイ 4ac9-vKOO)
2016/12/29(木) 00:40:53.89ID:OGBMppob0え?どこが?
0355デフォルトの名無しさん (ワッチョイ e366-Fh/7)
2016/12/29(木) 01:53:14.80ID:lK2W9S2T0個人的にはたぶんsmalltalkからの流れなんだろうけど
恐ろしく「オブジェクトに命令を与えて何かさせる」で統一されていて
「できねぇのはそのオブジェクトの責任」で外への影響波及を最小限にしてる思想が面白かった。
(結合が疎の部分でクラス分けされていて、密な部分はC)
0356デフォルトの名無しさん (ワッチョイ 865b-4xst)
2016/12/29(木) 03:40:31.76ID:lKSLRFPi00357デフォルトの名無しさん (ブーイモ MMaa-Vq3R)
2016/12/29(木) 06:20:44.64ID:13IxHxtAM返事するけど何もしないオブジェクトとか
0358デフォルトの名無しさん (ワッチョイ de42-5AW6)
2016/12/29(木) 07:52:07.62ID:bUdbWaJH0リテインカウントってただの関数名だぞ。
リファレンスカウントのことだとすると、swiftはリファレンスカウント方式のガベージコレクタなのでどちらか選択できる概念のものじゃない。
0359デフォルトの名無しさん (ササクッテロリ Spa3-fehe)
2016/12/29(木) 08:11:03.90ID:7bfuEKFUpswiftスレでobjcの良さを語り始める>>355も痛いけど、>>358も痛いわ
0360デフォルトの名無しさん (スプッッ Sd4a-4xst)
2016/12/29(木) 08:26:39.29ID:uZ56/Y+Td0361デフォルトの名無しさん (ワッチョイ de42-5AW6)
2016/12/29(木) 09:22:43.84ID:bUdbWaJH0根本的に理解が間違ってることを指摘したのにどこが言葉尻なん?
何を指摘したのか理解してないだろ?
0362デフォルトの名無しさん (スップ Sdaa-tTSs)
2016/12/29(木) 09:37:09.17ID:NsphQCuqd〉そういう言葉尻を挙げた煽り
言葉尻?
自分の無知や間違いを認めない方が問題。
とても大切な事。
動きを正しく理解していないから、そういう発言になるんだよ。
理解力が低いから、わからないんだろうな。
0363デフォルトの名無しさん (ワッチョイ 3b42-bIh6)
2016/12/29(木) 10:27:38.30ID:KtJtlY/K0できん
ソースは俺
0364デフォルトの名無しさん (ワッチョイ 0ece-O/vA)
2016/12/29(木) 10:55:47.24ID:ZKfLUl1q0ぶっちゃけ、朗報じゃないな。
エィっと、即刻https 接続必須にすべきだったと思うよ。
0365デフォルトの名無しさん (ワッチョイ d33c-CBwx)
2016/12/29(木) 17:09:44.23ID:Ql74sNGH0だがSwiftにどっぷり使っててたまに触るとど忘れしてるんだよな
0366デフォルトの名無しさん
2016/12/29(木) 20:31:48.17ID:P9vMwfrXコンパイラディレクティブ@class XXXXがswift側から見えないようで
Use of undeclared type ‘XXXX’
ってエラーがでるんですが解決方法とかありますか?
0367デフォルトの名無しさん (JP 0H4f-Vq3R)
2016/12/30(金) 16:15:57.73ID:Q3tvxZdgH老化
0368デフォルトの名無しさん (ササクッテロラ Spa3-LbII)
2016/12/30(金) 18:28:31.72ID:+0G7T/E5p$ 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にも上がってない気がするから、どうしても欲しいなら挙げてみてはどうだろう
0369デフォルトの名無しさん (ワッチョイ f31d-qQw5)
2016/12/31(土) 01:24:26.16ID:JiRCGpmr0"いろは"..."こまち" ~= "かおり"がtrueを返すのが良くわからない
0370デフォルトの名無しさん (ワッチョイ d33c-Sa8B)
2016/12/31(土) 09:25:48.68ID:mE/kuofD0"いろは" <= "かおり" && "かおり" <= "こまち"
0371デフォルトの名無しさん (ワッチョイ f31d-qQw5)
2016/12/31(土) 11:55:44.89ID:JiRCGpmr0ありがとうございます
0372デフォルトの名無しさん (ワッチョイ c678-qQw5)
2017/01/01(日) 16:12:05.39ID:LRDjbo8a0どうしてそう言う文字列判定をやりたくなったのかをkwsk
0373デフォルトの名無しさん (ワッチョイ f31d-qQw5)
2017/01/01(日) 16:49:50.79ID:pJ4YqSE700374デフォルトの名無しさん (アウアウカー Sa6b-nn1e)
2017/01/03(火) 20:58:51.42ID:i262efYCa勉強会でもあれば参加したい。
0375デフォルトの名無しさん (ワッチョイ 865b-O/vA)
2017/01/03(火) 21:21:58.86ID:mYtDE+6700376デフォルトの名無しさん (ワッチョイ 4a3c-cI3V)
2017/01/04(水) 02:15:14.63ID:YVtV1wPR00377デフォルトの名無しさん (ワッチョイ 865b-O/vA)
2017/01/04(水) 09:22:00.67ID:ws9aPhGs00378デフォルトの名無しさん (スッップ Sdaa-4xst)
2017/01/04(水) 09:55:37.90ID:AKqv+vIqdラットナーのセンスがクソ過ぎ
0379デフォルトの名無しさん (ワッチョイ 4ac9-CBwx)
2017/01/04(水) 11:42:36.33ID:UeSeDktg0そんなんだから老害って陰口言われるんだぞオッサン
0380デフォルトの名無しさん (スッップ Sdaa-4xst)
2017/01/04(水) 12:14:42.85ID:JWIK2up0d0381デフォルトの名無しさん (アウアウカー Sa6b-nn1e)
2017/01/04(水) 12:23:42.84ID:BZb3HoVpaプログラミングを1からやりたいという気持ちでした。
なかなかサンプルの内容も?となることがまだ多くて、独学の限界かもって思ってました。
0382デフォルトの名無しさん (ワッチョイ 865b-O/vA)
2017/01/04(水) 12:47:37.75ID:ws9aPhGs0>「無駄に」without C
無駄にねぇw
まあわからんでもない
べつにwithout Cはいいんだけど、Cの便利だったシンタックスも
意地でも変えなきゃいけない感は確かにあるかもな
0383デフォルトの名無しさん (ワッチョイ 865b-O/vA)
2017/01/04(水) 13:01:22.83ID:ws9aPhGs0発展途上なSwiftがまともに勉強する言語だというのは少し可哀想な気もするけど
一つ一つ覚えていけば難しくはないと思うけどな
行き詰まってるポイントでも書いてみればここにいるSwift愛者が答えてくれると思う
0384デフォルトの名無しさん (ササクッテロリ Spa3-fehe)
2017/01/04(水) 14:16:51.43ID:YWPaOegwpEitherが3で公式採用される?って夢見ててワロタ
そう言えばそんなものもあったなぁ
0385デフォルトの名無しさん (ワッチョイ 4a3c-cI3V)
2017/01/04(水) 18:23:56.54ID:YVtV1wPR0最初にプログラミングの独学の仕方を独学することを勧める
Swiftに限って言えば今のところ英語のリソースにあたらないと厳しいと思う
0386デフォルトの名無しさん (ワッチョイ de42-lvqa)
2017/01/04(水) 18:41:03.84ID:SBIBjCGJ0E言語の独学方法を教えてくれ。
0387デフォルトの名無しさん (ワッチョイ 1eba-vAWO)
2017/01/04(水) 18:42:19.06ID:oADIImOs0以上
0388デフォルトの名無しさん (ワッチョイ d33c-Sa8B)
2017/01/04(水) 22:55:09.63ID:MF1GJy5o0読む→調べる(what)→調べる(why)
https://github.com/apple/swift/tree/master/stdlib/public/core
行き詰まったら聞く
0389デフォルトの名無しさん (ワッチョイ 4a3c-cI3V)
2017/01/04(水) 23:50:11.58ID:YVtV1wPR0まず目的の質を高めるのが大事
具体的に解決したい問題が念頭にあるかどうかで学習効率が大きく変わってくる
何のためにプログラミング言語を学ぶのか?
プログラミング言語を学ぶことで解決したい問題は何なのか?
例えば以下の3つなら3番目が断然学習効率が高い(エロ最強)
- 関数型プログラミングの考え方を知るためにHaskellを学ぶ
- iOSアプリを作れるようになるためにSwiftを学ぶ
- エロ動画のコレクションを自動生成できるようになるためにJavaScriptを学ぶ
0390デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/05(木) 00:05:47.40ID:JJBRc58h01. 目的の質を高める
2. 信頼できる優れたリソースを選ぶ
- チュートリアル、本、動画、オンラインコース、その他
- スタンダードライブラリ、サードパーティライブラリ、その他ソースコード
3. 短期間に集中して学ぶ
- 本なら1冊2週間以内が理想、どんなに長くても1ヶ月
4. 読むだけ見るだけじゃなく必ず手を動かす
- 写経するだけでもやらないより格段にいいが自分で考えてコードを書く問題があると身につきやすい
5. ノートを取る
- 本を読み返さなくてもある程度復習できるように
- 自分の場合はアウトライナーを使ってる(マインドマップとかでもいいと思う)
6. 学びながら作る
- 自分が欲しいと思う簡単なツールを学びながら作る
- 例えば「セール中アプリを通知するツール」等
- 言語を学ぶためにはCUIツールのほうが効率がいい
- テキスト処理・ファイル処理・Webスクレイピング等
7. メモる(ノートとは別)
- HOWTO/Tips:〜したい場合にはどうすればいいのか?
- WHY:なぜXXじゃなくYYするのか?
- ERROR:発生したエラー内容とその原因、再発防止策
- VOCABULARY:用語、概念
- REFERENCE:公式ドキュメント、Style Guide、リファレンス
以上が自分のやり方だけど目的や人によってやり方は変わるはず
0391デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/05(木) 00:11:19.38ID:JJBRc58h0良いコードを書くためにはたくさん読んでたくさん書いてたくさん書き直すのが大事だけど
新しいプログラミング言語を身につけるためには自分が使う道具を作ってみること(上の6番)が最重要な気がする
0392デフォルトの名無しさん (ワッチョイ 6f5b-9Pqs)
2017/01/05(木) 00:12:03.17ID:t0+k7rBa00393デフォルトの名無しさん (ワッチョイ 5b3c-IbiL)
2017/01/05(木) 01:08:30.19ID:RQyVxWdy0そりゃ上達するわけだよ
0394デフォルトの名無しさん (スッップ Sdff-9Pqs)
2017/01/05(木) 01:11:24.33ID:YFuTJ90Hd変な癖がついて他言語学ぶときの障害になる
0395デフォルトの名無しさん (ワッチョイ 1b66-SevC)
2017/01/05(木) 06:39:39.52ID:R8ehuYNe0後々に次世代になるポテンシャルはあるのかもしれんが
まだ海の物とも山の物ともつかない発展途上の言語で
なにより古参が困ってるのは
"別にこれでプログラミングが楽になるわけでもなんでもない、
理念なき新しい文法の新言語いつものように一個追加されただけ"
だってとこなんだよなぁ… 特に使う意味がない…
0396デフォルトの名無しさん (JP 0H3f-q3aP)
2017/01/05(木) 06:59:23.35ID:42rV0dhtHわかりますω
0397デフォルトの名無しさん (JP 0H3f-q3aP)
2017/01/05(木) 07:00:36.19ID:42rV0dhtH健保と住基とマイナみたいな
0398デフォルトの名無しさん (ワッチョイ ab8f-S2pU)
2017/01/05(木) 10:22:06.94ID:xO3cTqiR0面倒くさいとしか思わないかな?
null地獄
0399デフォルトの名無しさん (ワッチョイ db1d-+flj)
2017/01/05(木) 10:37:51.41ID:J4n9XDOy00400デフォルトの名無しさん (ワッチョイ 1b7b-spyU)
2017/01/05(木) 12:13:39.84ID:rS/TqFdr0全てのオブジェクトの変数がoptionalであるJavaで入門する奴が多いんだからそこは大した問題じゃなくね
0401デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
2017/01/05(木) 12:35:52.19ID:PwoXhQQ80数学意識して左下にしていたのを実用重視で改めたのでは
0402デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
2017/01/05(木) 15:08:20.98ID:zjhRqjNop初めて使う言語がObjCだった人も多いしswiftでも別にな
ObjCメッセージ文法が至上なのはいいけど、汎用性がねぇw
Swift Optional型なんざそれに比べれば誤差よのう
0403デフォルトの名無しさん (アウアウウー Sa3f-IW1l)
2017/01/05(木) 15:50:12.04ID:WkTIUcDja0404デフォルトの名無しさん (ブーイモ MMff-S2pU)
2017/01/05(木) 17:18:55.89ID:oFOZ2y/SM0405デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
2017/01/05(木) 17:32:58.79ID:sWdRcuvD00406デフォルトの名無しさん (スップ Sdff-oQtP)
2017/01/05(木) 18:22:18.82ID:YNtiq33Odほんとこれ
0407デフォルトの名無しさん (ブーイモ MM3f-twlg)
2017/01/05(木) 20:45:21.20ID:P+GiqLXdM0408デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
2017/01/05(木) 20:47:15.64ID:zjhRqjNopそれはそれとして、 swiftがヤならobjcでいいじゃん、、、
どっちもイヤならアポー端末を諦めろというね
0409デフォルトの名無しさん (ワッチョイ 0f42-HvS5)
2017/01/05(木) 21:15:32.68ID:P4uSEloo00410デフォルトの名無しさん (ワッチョイ 0fba-oQtP)
2017/01/05(木) 21:58:08.24ID:jBQh1CN000411デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)
2017/01/06(金) 00:00:22.89ID:bcUwFgd80初めて学ぶ言語ならObj-Cの方がCの勉強にもなるからSwiftより断然まし
SwiftはObj-C以上に排他的変態的シンタックスだから初学者には
やっぱり個人的にはお勧めできないわ
0412デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/06(金) 00:22:09.68ID:Y1Cw0qRA0そんな特殊だと感じることはないんだが
Objective-Cに比べると格段にタイプ量が減って見た目もスッキリするから
個人的にはそれだけでも大きなメリット
0413デフォルトの名無しさん (ワッチョイ 1b66-SevC)
2017/01/06(金) 00:28:39.65ID:BpurgW/q0職業プログラマ特有のこの価値観がもうゲロ出るぐらい嫌い
0414デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
2017/01/06(金) 00:33:12.22ID:PzH0fr810プログラマとして勉強不足なのバレバレだぞ
0415デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/06(金) 00:33:15.56ID:Y1Cw0qRA0タイプはXcodeが補完してくれるから実質的にはそこまでの違いはないかもしれないんだが
文字を読む量が違うんだよ でそれはバグの量に直結するかんね
0416デフォルトの名無しさん (ワッチョイ 1b66-SevC)
2017/01/06(金) 00:50:24.79ID:BpurgW/q0はぁ。
あなたは一生work1にwork2から変数A1を代入してこれでバグが少ない!とほざいててください。それでいいよ
0417デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
2017/01/06(金) 01:05:43.98ID:/fM3tdtK0関数型言語界隈からの価値観というか流れでは
0418デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/06(金) 01:57:40.55ID:Y1Cw0qRA0読む量が減ればバグが減るって言ってるのに増やしてどうすんねんw
0419デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/06(金) 01:58:56.36ID:Y1Cw0qRA0今でも普通に使われてる言葉なの?
0420デフォルトの名無しさん (ワッチョイ dfc9-6vgr)
2017/01/06(金) 02:18:34.24ID:EL7IyQQ80同意
0421デフォルトの名無しさん (ワッチョイ 5f93-+flj)
2017/01/06(金) 07:52:01.44ID:Q/mvZ92R0>>390
お前良い奴だな
なかなかいい学習ノウハウだ
おれRuby勉強した時は良質なxx写真がアップされているスレを解析して
スレ内のURLから写真を片っ端からダウンロードするプログラムを書いたな
そう言えば大学院の先輩に英語の速読できるようになりたいと聞いた時の回答は「Hな本読むといいです」だった
つまりエロ最強!
0422デフォルトの名無しさん (スプッッ Sdff-B9xl)
2017/01/06(金) 12:21:21.27ID:RUdDycfgdそう、冗長だと見通しが悪すぎる。
半分はライブラリ設計のせいで、残りはc言語のせいの気もするけど。
0423デフォルトの名無しさん (ワッチョイ bb10-51vH)
2017/01/06(金) 19:38:50.74ID:Gq0Nc1/d0同等のJavaのコードに比べて、単に配列から値を取り出してるだけの行も複雑な命令を実行してる行も同等に横いっぱいになるから飛ばし読みがしづらくてしっかり読む必要があった。
わけのわからない変数名や関数名をつけて短くていいよねみたいな話ではないよ。BASICとかの時代じゃないんだからさぁ。
0424デフォルトの名無しさん (ワッチョイ 2b0c-tEgc)
2017/01/07(土) 00:28:19.84ID:DNozFqRa0別ファイルで objc コード書くと見通し悪いから、Swift に局所的に objc コード埋め込めたりすると面白いかな、
C#のunsafeとか __asm {} みたいに。欲を言えば言語指定クロージャみたいな感じ
0425デフォルトの名無しさん (ワッチョイ 5f93-+flj)
2017/01/07(土) 08:53:14.57ID:4HC1Pjzk0それじゃwithout cにならないべ
0426デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)
2017/01/07(土) 08:55:58.44ID:72YrLFZp00427デフォルトの名無しさん (ササクッテロリ Sp3f-L2iV)
2017/01/07(土) 08:57:56.42ID:182Vw6zJp0428デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
2017/01/07(土) 09:19:02.71ID:OQtShFizpなお、現在は、、、
0429デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)
2017/01/07(土) 09:31:45.95ID:72YrLFZp00430デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/07(土) 09:37:34.24ID:iBRfuxUXaって思う時って例えば具体的にどういうケースなんだろ
ただ単にC言語に慣れててすぐ書けるからってことじゃないよね?
0431デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
2017/01/07(土) 12:02:53.35ID:OQtShFizp一応、UnsafeMutablePointerを操作するよりはCの生ポインタ操作出来る文法が楽ってのはあるけど
Swiftでポインタ操作が必要なら自前ラッパーAPIで隠蔽して上位レイヤーでは気にしなくて済むようにするよ
0432デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)
2017/01/07(土) 12:17:38.95ID:72YrLFZp0Obj-Cなら何も考えずそのまま実装できたことをSwiftでやろうとした時
どうするかって話だね
without Cを高らかに謳っているのだから仕方ないね
頑張ろう
0433デフォルトの名無しさん (オッペケ Sr3f-6vgr)
2017/01/07(土) 17:26:53.31ID:UVIgJaZNrシステムコール使うときとか?
0434デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/07(土) 17:53:33.27ID:p94OVxAQ0ファイルを行単位で読んで処理しようとする時とか
CのAPI使ったほうがスッキリ書けたりするケースがあるんだよね
http://stackoverflow.com/a/24669956/1000690
0435デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/07(土) 18:02:35.45ID:hf6ybaU+aでも、それ別ファイルにCで記述して、Swiftから呼ぶようにした方がメンテナンス性あるんじゃね?
0436デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
2017/01/07(土) 18:34:39.92ID:OQtShFizp回答上位にある汎用クラス作って云々が良いとも思わないけども
そういうフォローをちゃんとした単純関数で実装したらCでもSwiftでも大して変わらんよな
、、、Swiftなら全データをStringに突っ込んで、改行文字でsplitとか乱暴するのも一興か
0437デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/07(土) 18:52:21.07ID:p94OVxAQ0どうだろうね?
別ファイルにしてAPIのインターフェース考えて実装してメンテナンスしていく手間をかけるだけのメリットがあるのかどうかによるよね
>>436
メモリのフットポイントを気にしないならSwiftでもそう変わらないだろうけど
気にするならNSDataとかで処理しないといけないからSwiftのほうが面倒だと思うよ
0438デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
2017/01/07(土) 19:10:10.76ID:IyWm4kw10バイトストリーム、キャラクタストリーム, レキサー/パーサーに分けて繋げた方が後が楽だと思う
0439デフォルトの名無しさん (ワッチョイ 2bf8-+flj)
2017/01/07(土) 20:04:55.49ID:Gk0CJ/2J0CのAPIの方が簡単と言うのはプログラマが担保しなきゃいけない安全確認とかを全部すっ飛ばして書けるからであって
必要な安全性を確保しながらコード書くならSwiftの方が簡単だよ
0440デフォルトの名無しさん (ワッチョイ 6fa2-+flj)
2017/01/07(土) 20:37:16.77ID:w3Yo/XU60SIMD使う時とかはしょうがないよね?
そういうケースが稀なのは認める。
0441デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
2017/01/07(土) 20:48:06.16ID:eRueAzeT00442デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/07(土) 20:52:00.96ID:UTTve38fa別ファイルにするにしても、同一ソース内に埋め込むにしても、データ受け渡しのためのインタフェースは考えないといけないだろ
0443デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/07(土) 21:18:40.07ID:p94OVxAQ0そういうケースもあるだろうけど例として上げたケースは
用意されてる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()
0444デフォルトの名無しさん (スププ Sdff-+flj)
2017/01/07(土) 21:48:31.26ID:A7PZcJW4d>用意されてるCのAPIを使うかSwiftで自作のAPIを作るかの違い
そこに「用意されているSwiftのAPIを使う」と言う選択肢がないのがおかしくないかい?
SwiftならファイルパスでStringを初期化してenumrateLinesするだけでいいから
CのAPIでゴチャゴチャ作るよりはるかに簡単で安全だよ?
例えばあなたが>>443の下部で引用しているCの関数を使った例では
バッファサイズとして4096を取っているから
一行が4095文字以上の入力を受けると正しく動作しなくなっちゃうよ
この制限をC言語で解決するのは結構面倒くさいよ
0445デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/07(土) 21:49:05.59ID:UTTve38faコード見たよ
で?
0446デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/07(土) 21:55:01.67ID:p94OVxAQ0>SwiftならファイルパスでStringを初期化してenumrateLinesするだけでいいから
それメモリに全部読み込んでるでしょ?
極端な例だけど300MBのファイルだとして全部最初にString化するの?
0447デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/07(土) 21:55:42.79ID:p94OVxAQ0見てて>>442みたいな考えなら特に言うことはない
0448デフォルトの名無しさん (スプッッ Sdff-GcKO)
2017/01/07(土) 22:12:08.42ID:DTtrdLJ+d「ファイルを行単位で読んで処理しようとする時とか」の「とか」は、「ファイルを行単位で読んで処理しようとする時」以外の何?
>>439
「プログラマが担保しなきゃいけない安全確認とか」の「とか」は、「プログラマが担保しなきゃいけない安全確認」以外の何?
そんな「とか」の使い方じゃ、まともな仕様は作製できない。
0449デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
2017/01/07(土) 22:21:44.29ID:IyWm4kw10http://swiftlang.ng.bluemix.net/#/repl/5870e7500f558d57abf31839
・セル内の改行に対応
・パイプライン的に処理(バッファ境界でUTF8が破断することも無し)
・改行コードはちょっと端折り
0450デフォルトの名無しさん (ワッチョイ 5f93-+flj)
2017/01/07(土) 23:25:32.71ID:4HC1Pjzk0残念ながらこれは仕様書ではない
安全確認以外の何かを明確にするにはまず安全とは何かを定義しなければならないが
それを定義にするのは本来の議論の範囲外であり、
議論の本質の理解の妨げになるためあえて定義を行わなかった
そこで、明確に定義されていないことを明確に示すために「とか」を用いている
そう言うことを聞きたいわけ???
0451デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/07(土) 23:32:17.40ID:p94OVxAQ0超できる子だな
Swiftのシーケンスって読み終わったところからメモリ開放されるのかな?
そうじゃなければ別途chunkに分割しないと全処理時は最終的にメモリに乗るよね
0452デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
2017/01/07(土) 23:54:15.55ID:PPvI4deGp0453デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
2017/01/07(土) 23:55:36.10ID:IyWm4kw10Iteratorのクロージャが強参照してるもの以外は順次開放されるよ
UTF8デコーダと内部バッファ(4バイト?)、字句解析用の変数(end,hold)、
1レコード分(row:[String])がメモリ消費する
Array(parseCsv(...))すると全部抱えてしまうのでforEachで1レコードずつ処理する必要はある
0454デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
2017/01/08(日) 00:11:05.12ID:JrkgmnK40http://swiftlang.ng.bluemix.net/#/repl/587104360f558d57abf31847
0455デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/08(日) 00:46:34.89ID:9hp7bz6e0そっかありがとう
>>454
すげーな 超参考になる
ファイル読み込みはchunkでやるけどあとはバイトストリームで処理できるから境界の心配しなくていいのね
こういうシーケンス使った考え方を知るのになんかオススメの本とか資料とかもしあったら教えて
Swiftじゃなくてもいいので
0456デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)
2017/01/08(日) 09:45:34.32ID:qkk6ZrX+00457デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
2017/01/08(日) 10:12:37.73ID:JrkgmnK40今ググって見つけたページではあるけど、こういうから知識を拾っておくと良いかも
http://hexadrive.jp/hexablog/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0/12405/
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はジェネリクス対応用(型消去法)
0458デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/08(日) 17:36:54.12ID:9hp7bz6e0ありがとう
心のなかでマスター先生と呼ばせてもらうよ
素養が違うからか教えてもらった記事からだとマスター先生の考え方に近づけそうにないんだが
もう少し頭のなかをストリーム化できるように日々修行するわ
0459デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/08(日) 17:40:12.38ID:9hp7bz6e0関数の戻り値の型
func greet(person: String) -> String {…}
↑Stringを返す関数
0460デフォルトの名無しさん (ワッチョイ 5f93-+flj)
2017/01/09(月) 00:00:23.02ID:eHS8l2Ef0300MByteなら躊躇せずオンメモリで処理するかな?
1GByteならちょっと悩んでストリーム処理にするけどそれは実際に1GByteのファイルを喰らってから考える
遅くなるだけで処理としては破綻してないし
enumerateLinesでイテレート処理してれば
ストリーム処理にする場合でも行単位で文字列を取り出せるイテレータを定義するだけで
後段はそのまま使えるから移行は比較的楽
逆に
Cの関数で4095バイトとかバッファサイズで打ち切られちゃうと
4095文字以上の行に対応させるには
バッファの確保やマルチバイト文字の整合性とか色々考えるのが面倒
要するにCで書いてもSwiftで書いても簡単に書けるのは入門書のサンプルプログラムレベルのもので
細かいチェックを入れるとどちらもそこそこ書き込みが必要
その上で
1行が4095文字を超えると破綻するCの関数がいいと思うか
巨大ファイルを渡されると処理速度が遅くなる可能性のあるSwiftの標準関数を使うか
と言うだけの話だと思うよ
で、Swiftでプログラム書いてる途中でこの処理が必要なら
俺ならSwiftで書く方を選ぶと思う
0461デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/09(月) 00:13:07.51ID:vNdwgc8fa#!/usr/bin/env perl
while (<>) { print; }
0462デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/09(月) 00:18:04.60ID:vNdwgc8faちょっとした変換も簡単実装
cat lower.txt | perl -e 'while(<>) { print uc; }' > upper.txt
0463デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/09(月) 00:57:25.52ID:JTALZxOQ01GB使ったらiPhone6以下なら毎回クラッシュだよ
メモリの使用量を抑えつつ巨大なテキストファイルを読み込む時にどう処理するかって時の例だから
そこをすっ飛ばしたら意味ないがな
>Cの関数で4095バイトとかバッファサイズで打ち切られちゃうと
バッファサイズは状況に応じて変更すればいいでしょ?
それに本当に必要なら読み込んだバッファの最後の文字が改行じゃなければ次を読み込んで足してから処理すればいい
個人的にはそういう処理が必要になるようなケースには出会ったことがないけど
NSStream+NSDataとかでも同じことできるんだけど少し余計に手間がかかるから
Cを選ぶ人がいてもいいんじゃないかって話だ
0464デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/09(月) 01:06:52.96ID:vNdwgc8fa0465デフォルトの名無しさん (ワッチョイ 5f93-+flj)
2017/01/09(月) 01:26:40.47ID:eHS8l2Ef0>バッファサイズは状況に応じて変更すればいいでしょ?
プログラムはどうやって状況を判断するんだ?
日本語の小説流し込んだら簡単に1行がメガバイト単位になるぞ?
0466デフォルトの名無しさん (ワッチョイ 0fba-oQtP)
2017/01/09(月) 02:22:19.00ID:9ACblGiY00467デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/09(月) 04:04:22.01ID:JTALZxOQ0別スレで質問してた人?
バッファサイズ考えるより前にそのファイルの入手方法を考えなおしたほうがいい気がするが
0468デフォルトの名無しさん (ワッチョイ 5f93-+flj)
2017/01/09(月) 11:54:09.06ID:eHS8l2Ef0>別スレで質問してた人?
違うよ
単に俺(>>467)が>>434に難癖つけてるだけだよ
Cで書いた方が簡単な事もあるの例に
文字列I/Oって言う危険物を持ってきた上で
安全チェックもしてないコードを引用して、ほらCで書いた方が簡潔でしょ?
と言う論調がおかしいと思ったんで噛み付いてる
確かにCで書いた方がいい事もいっぱいある
だけど少なくともI/Oとか文字列処理とかC言語の中でも1番の危険物を持ってきて
危険だと言うことを知らせずにCで書いた方が簡単な例に上げるのはどうかと思うよ
こう言う危険性もあるけど、swiftからcの関数を呼び出せばこう言う書き方も出来るよ程度にしておいて欲しい
0469デフォルトの名無しさん (ワッチョイ 5f93-+flj)
2017/01/09(月) 11:55:28.60ID:eHS8l2Ef0すまんあんかミス
>単に俺(>>467)が>>434に難癖つけてるだけだよ
おれは>>465ですた
0470デフォルトの名無しさん (ワッチョイ 7bcf-q3aP)
2017/01/09(月) 12:49:46.11ID:4OeNzyzM0入力が固定されてるなら問題ないと思う
0471デフォルトの名無しさん (ワッチョイ 5f93-+flj)
2017/01/09(月) 13:58:21.90ID:eHS8l2Ef0ファイル入力で常にこちらの思い通りのデータしか来ないことを想定するの?
入門書のチュートリアルならそれでもいいけどさ
入力データをこちらで決める事ができるなら
JsonとかXMLとかRealmとかのこなれたライブラリが存在するファイル形式を採用する方がいいと思うよ
そんなことを考えるとswiftの中でcを直接使うことの優位性はあまり無いと思うんだ
0472デフォルトの名無しさん (アウアウカー Sa3f-7kys)
2017/01/09(月) 14:53:15.83ID:C7tBzNeYa0473デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/09(月) 15:21:45.24ID:abgacrATa書き方の慣れの問題だけで
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
バリバリ使ってるよ
0474デフォルトの名無しさん (スッップ Sdff-GcKO)
2017/01/09(月) 15:25:37.56ID:ynBqv2kkd中上級の奴が使いたがるんだよね。
で、viewDidLoadで、IBOUTLETのframeいじって「変わらない!Xcodeのバグだっ」て騒ぐんだよね。
お前が世の中のバグだから。
ライフサイクル解らないグズだから。
0475デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
2017/01/09(月) 15:32:05.60ID:rN+gQaLTp乙
なんか長文くんまで現れてやってたけど結局これよな
しかし UnsafeMutablePointer を let 宣言できるのが相変わらずキモい
特別扱いできないものかねぇ
0476デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/09(月) 17:35:13.39ID:JTALZxOQ0そっか別人か
そのメガ単位で改行されてないテキストファイルって一般的なの?
平均3バイト/文字としても3MBで100万文字だよ?
fgetsやfscanfと同じ機能を持つAPIは今のところSwiftにはなくて
同じようなことをしようとするとどうしても結構な量のコードを書く必要があるから
CのAPIを使いたい場合の例として>>434を上げた
UnsafePointerを扱うってことは
メモリ周りで問題を引き起こすコードを書く危険性が高まるってことだからそこを天秤にかける必要性はわかる
ただそれ以外の安全チェックとか危険性とか言ってる部分はSwiftなら全部面倒みてくれるわけではないよね
0477デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/09(月) 17:49:07.80ID:JTALZxOQ0別人だってことなので一応この質問に答えとくと
プログラムで扱うファイルの1行の最大長が予測可能な範囲にあるならそれに応じてサイズ変更すればいいって意味ね
そうじゃないなら>>463に書いたようにバッファ内に改行があるかどうかをチェックして複数回バッファ読んでから処理する
この辺はC使っても使わなくても同じ
100MBを超えるようなテキストファイルってログファイルくらい処理しかないから発想が貧弱なのかもしれないけどね
0478デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
2017/01/09(月) 17:51:25.34ID:LuXubKyCp0479デフォルトの名無しさん (スッップ Sdff-GcKO)
2017/01/09(月) 17:58:25.64ID:ynBqv2kkdログ以外だと、何かのデータファイルをCSVで書き出したケースも考えられる。
過去やったのだと、クイズを出すアプリで、問題をひたすらテキストファイルで持っていた。
でも、移動体端末で、でかいファイルを処理するのって、基本的なarchitectureを考え直した方が良い気がする。
0480デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/09(月) 18:09:09.39ID:JTALZxOQ0100%同意
iOSならテキストデータのインポート・エクスポート時が一番のユースケースだろうね
0481デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
2017/01/09(月) 18:49:37.59ID:LuXubKyCp0482デフォルトの名無しさん (ワッチョイ 5b3c-GcKO)
2017/01/09(月) 19:35:52.53ID:Mfdzy40n0まあ、
>>477
さんの言う通りログなら仕方ないんだけれどもね。
ただ、そんなデカイログを端末で見るというarchitectureが・・・以下自粛。
0483デフォルトの名無しさん (ササクッテロロ Sp3f-+flj)
2017/01/09(月) 19:38:32.72ID:uxZFBykMpあんなもん設定した通りの優先順位付けで表示されるだけだろ
0484デフォルトの名無しさん (ワッチョイ 0f7b-MPfw)
2017/01/09(月) 23:59:11.54ID:qvjxruLM0JSのファイルでも、Minify とかで圧縮する
0485デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/10(火) 00:08:49.29ID:qN25f4rba0486デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
2017/01/10(火) 09:52:08.69ID:0L0fi+PIpって話だったのに、データ構造だのAuto Layoutだのを議論しててワロタ
0487デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/10(火) 10:27:31.44ID:hQEZjrPha話が飛ぶのは2chではよくあることだから
0488デフォルトの名無しさん (スプッッ Sdff-oQtP)
2017/01/10(火) 10:40:39.28ID:L0gptR0Sd0489デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
2017/01/10(火) 10:53:58.04ID:FDJAHjJcp0490デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
2017/01/10(火) 10:56:22.37ID:0L0fi+PIpお前バイク板住民かよぉ
(今もあそこがアレな板なのかは知らん)
0491デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
2017/01/10(火) 11:17:06.45ID:FDJAHjJcpで、そのあと、具体例として、ファイル読み込みの話になって、C言語で書いても可変サイズの行だと面倒じゃね? という話になって、そっからデータ構造の話に発展して、どさくさ紛れに、Auto Layoutの話を入れてくるKYが現れて、ってのがここまで流れだと思ったが...
まぁ、別に同じスレッドで違う話題を同時に扱うなって決まりはないしな
0492デフォルトの名無しさん (ワッチョイ df2b-vyGv)
2017/01/10(火) 11:44:11.95ID:nWa+BtAl0> ネタ、板とは関係の無い話題はご遠慮ください。
決まりはあるんだけどな
Inline C in Swiftはネタ(当人はマジの様子)だけど、それ以降はSwiftに絡めたネタも少なく・・・
データ構造やAutoLayoutを話すのはいいが、ネタとしてSwiftを絡める努力をしよう(他人事
0493デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/10(火) 11:56:12.46ID:1oVGbtNGaAutoLayoutに至っては4レスあっただけなのに
Swiftと全く無関係ってわけでもないやろ
0494デフォルトの名無しさん (スププ Sdff-+flj)
2017/01/10(火) 12:28:56.18ID:VHs9RTlPdwhile let l = readLine() {
print( l )
}
ただしファイルを標準入力にリダイレクトしておく
FileHandleにreadLineが定義されていないのが謎
0495デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
2017/01/10(火) 12:35:10.25ID:0L0fi+PIpSwiftのCoreAPIにReaderがないのは3rd party libにぶん投げしてる気がする
0496デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
2017/01/10(火) 14:03:45.11ID:8RubTyxI00497デフォルトの名無しさん (ワッチョイ 7bcf-q3aP)
2017/01/10(火) 14:08:24.18ID:s989ZmsY0昔の2ちゃんのhtml思い出した
0498デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
2017/01/10(火) 15:07:36.80ID:tt6nQotl0// 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)}
0499デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/10(火) 17:22:06.72ID:PjuH0Yrh0こういうの普通に動くようになって欲しいね
他言語だと問題なく動くケースのような気がする
(->> (iterate inc 1)
(map #(* 2 %))
(take 5)
(reverse)
(map println))
0500デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
2017/01/10(火) 17:34:25.49ID:0L0fi+PIp関数型言語なら文化に合ってるんだろうけどSwiftで書くコードじゃねぇ
もっと読みやすい書き方あるだろとコンパイラ以前に、人間様がコードレビュー時に発狂したい
0501デフォルトの名無しさん (スッップ Sdff-+flj)
2017/01/10(火) 17:46:11.19ID:IYumFm2zdよし、これなら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)
}
0502デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/10(火) 17:51:57.47ID:aMk4PEuoasequence(first:0){$0+1}
.prefix(20)
.map{$0*2}
.reversed()
.forEach{print($0)}
0503デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
2017/01/10(火) 18:00:07.10ID:tt6nQotl0処理順を入れ替えられる例を出してすまん
map→filter→prefixのような場合は対応出来ない
0504デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
2017/01/10(火) 18:59:28.94ID:8RubTyxI00505デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
2017/01/10(火) 20:03:26.36ID:FDJAHjJcpmakeIterator()かませばいけるけどな
sequence(first:0){$0+1}
.lazy
.map{$0*2}
.prefix(10)
.makeIterator()
.reversed()
.forEach{print($0)}
0506デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/10(火) 20:46:07.85ID:PjuH0Yrh0これいいね
エンコーディングの融通はきかないけど
Extensionにして気軽に使える
0507デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/10(火) 21:15:41.77ID:PjuH0Yrh00508デフォルトの名無しさん (ワッチョイ 5f93-+flj)
2017/01/10(火) 22:31:43.58ID:Vzu2YddV0ファイルフォーマットはデータ構造だとおもうが?
0509デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/11(水) 00:03:32.25ID:wniphiOc0一般的にはデータ構造って言うともう少し論理的なもの(例えばArrayとかDictionaryとか)で
そのデータがシリアライズされたファイルフォーマット(ファイルの構造)とは別の話じゃない?
「じゃ、ここのデータ構造はJSONでお願い」って言われたら違和感あるよね
0510デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
2017/01/11(水) 00:16:18.42ID:5OhI584zpRustみたく変数名に名前付けたい
>>ワッチョイ df3c-FtWv
もういいから、自分が否定されないように前提条件、論点をズラし続けるから
風が吹いたら桶屋が儲かるみたいなスレチになるんだよ
またSwiftに関係ない議論を吹っ掛けてんだろ
0511デフォルトの名無しさん (ワッチョイ df3c-FtWv)
2017/01/11(水) 00:32:18.40ID:wniphiOc0議論するつもりはないから
いい大人ならオブラートに包んでるって気づけよな
0512デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
2017/01/11(水) 00:45:33.03ID:6QBqeohxpデータ設計で決めるのがデータ構造
ファイル設計で決めるのがファイルフォーマットだろ
プログラムはよくわからんから実装方法は各プログラマに任せるみたいな
0513デフォルトの名無しさん (ワッチョイ 1b17-+flj)
2017/01/11(水) 04:58:51.90ID:jTTy0tPr00514デフォルトの名無しさん (ワッチョイ 5fe5-+flj)
2017/01/11(水) 07:20:50.12ID:V2u2R+4Y00515デフォルトの名無しさん (スップ Sdff-oQtP)
2017/01/11(水) 08:02:31.25ID:jHuXm8fPd0516デフォルトの名無しさん (オイコラミネオ MMff-2HrH)
2017/01/11(水) 09:04:44.13ID:7pf6bg3nM0517デフォルトの名無しさん (エムゾネ FFff-9Pqs)
2017/01/11(水) 09:09:16.22ID:0/vimycYFSwiftがこの有り様だからな
つーかもともと言語としてのセンスがやはりなかった
Objective-Cから変える技術的逼迫性もなかった
まあオープンソースだし日曜プログラマは引き続きモダンな言語を楽しめばいいと思う
0518デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/11(水) 09:10:55.73ID:TTvERX8Laお前ら元気でな
0519デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
2017/01/11(水) 09:13:22.53ID:853Dbb3u0https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170109/030063.html
0520デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
2017/01/11(水) 09:36:15.32ID:5OhI584zp3でABI安定させてiOS組み込みランタイムにできてりゃまだこうはならなかったろうに
0521デフォルトの名無しさん (ササクッテロロ Sp3f-OZpM)
2017/01/11(水) 10:22:04.51ID:6QBqeohxp0522デフォルトの名無しさん (ワッチョイ 5f32-l80d)
2017/01/11(水) 12:28:02.16ID:3A3Blea/0CarPlayとテスラの自動運転がガッツリ融合みたいな感じになったりするのかね
0523デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
2017/01/11(水) 12:39:27.51ID:RGh2RgBv00524デフォルトの名無しさん (ワッチョイ 2b91-P21V)
2017/01/11(水) 12:46:25.80ID:hbAKDMBg0コアライブラリ(Foundation)が貧弱でも、外部ライブラリが充実してるならreadlineみたいな問題も起きぬ
go, rust, nodejsなんかは外部ライブラリもパッケージマネージャーも枯れてるのに
Swiftは未だにパッケージマネージャーが実用品質まで実装されていないのはホントくそだぜ
0525デフォルトの名無しさん (ササクッテロロ Sp3f-+flj)
2017/01/11(水) 13:25:01.52ID:El817HeFpいずれにしてもSwiftにはさじを投げた?
0526デフォルトの名無しさん (オイコラミネオ MMff-+flj)
2017/01/11(水) 17:08:20.22ID:h4pP9InkMオープンコミュニティといえ、元締めは彼だろ
0527デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/11(水) 17:33:41.40ID:NWO+SBAfa0528デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
2017/01/11(水) 17:53:48.76ID:5OhI584zp企業がリーディングする必要がないほどに成長した
Swiftはコミュニティベースの開発に移行する
とか言って切り離すフェーズだなw
その時は流石にIBMは泣いていいと思う
0529デフォルトの名無しさん (ワッチョイ 6f13-q3aP)
2017/01/11(水) 19:07:19.36ID:AM+tjFEn0歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00 ニコニコ生放送
lv286846512
0530デフォルトの名無しさん (ワッチョイ 6f5b-9Pqs)
2017/01/11(水) 19:48:30.44ID:ql+say3+0オープンソース化はこの伏線だったのかな
というかすでにコミュニティベースの開発に移行してるんじゃなかったっけ?
0531デフォルトの名無しさん (スッップ Sdff-+flj)
2017/01/11(水) 20:20:46.67ID:vol/OZGBdSwiftが廃れるフラグなのか
遅延評価だな
0532デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
2017/01/11(水) 20:53:57.18ID:jVlnEIwOa0533デフォルトの名無しさん (ワッチョイ 5fc9-tEgc)
2017/01/11(水) 22:21:38.06ID:H1aLMscd0業務中に開発した物は権利も含めて置いてけって言われるからな。
0534デフォルトの名無しさん (ワッチョイ ab8f-S2pU)
2017/01/11(水) 22:22:31.15ID:6a0oW3vG0そしてandroidで、swift使えるようにしてほしい
0535デフォルトの名無しさん (スッップ Sdd2-GRi3)
2017/01/12(木) 02:42:00.89ID:aguNSWiGd何がそんなにいいのかわからんけど
0536デフォルトの名無しさん (ワッチョイ bbba-f8hU)
2017/01/12(木) 04:11:52.57ID:NO1D7SqU0勉強する前に終わりが来てしまった…
もう駄目なん?
0537デフォルトの名無しさん (ワッチョイ be5b-GRi3)
2017/01/12(木) 04:53:25.74ID:HEZQC1GR00538デフォルトの名無しさん (ワッチョイ d315-+/No)
2017/01/12(木) 10:11:11.64ID:hrKw0WqE0お前の天下だぞ、やったなw
>>534
それはもう実現されたろ
誰もありがたがらないから取り上げられないだけで
0539デフォルトの名無しさん (ワッチョイ 9232-ZP+f)
2017/01/12(木) 11:03:11.47ID:HIZRXgmf0JavaにAOT入ってくるし余りSwiftの優位性がないんじゃないかなぁ
GoogleとしてはGolangの方を推すだろうし
0540デフォルトの名無しさん (スップ Sdf2-vkEW)
2017/01/12(木) 12:16:49.20ID:fxxdnJ+zd優位性はoracleに訴訟起こされないことなので
googleだからとgolang推すとは限らない
0541デフォルトの名無しさん (スプッッ Sdf2-MRNU)
2017/01/12(木) 12:20:15.98ID:ZbEfheT4d0542デフォルトの名無しさん (ササクッテロレ Sp37-rG+u)
2017/01/12(木) 13:18:05.94ID:bePo0qAjpAOTはとっくに入ってるけど、それでも頭打ちになって、
AOT+JITハイブリッドに進んでいる
0543デフォルトの名無しさん (JP 0Hf2-dHfL)
2017/01/12(木) 15:07:06.54ID:UlDpgnikH0544デフォルトの名無しさん (ワッチョイ f38f-JEwG)
2017/01/12(木) 19:27:11.74ID:MO5zZFfW0golangはエコシステムが素敵なだけで
better c感があるからなぁ。
正直ジェネリクスが入るまではあんまりアンドロイド向けにはならない気も。だってjavaみたいな抽象化ブログラミング苦手っしょ
0545デフォルトの名無しさん (ワッチョイ d315-+/No)
2017/01/12(木) 19:51:13.69ID:hrKw0WqE0GoやRust(あと一応Swiftも)の言語仕様が切られてるんだけどな
ジェネリクスはどうでもいいわ、あれば使うけど、なくても死ぬわけでもなし
0546デフォルトの名無しさん (スップ Sdf2-vkEW)
2017/01/12(木) 20:03:43.81ID:fxxdnJ+zd0547デフォルトの名無しさん (ワッチョイ f38f-JEwG)
2017/01/12(木) 20:04:28.76ID:MO5zZFfW0抽象化プログラミングの否定ではなく
関数型プログラミングへの注力ってだけでしょ。抽象化は必要な技術であることには変わらない。
RxSwiftとか触ってると抽象化が得意な言語上で作られたFrameworkの便利さには感動する。
んで、golangはそういうのが苦手で、
どうしてるかと言うと、コードジェネレータを作ったりしてるw
正直そういう部分がアンバランスな感じなので、はよジェネリクスくれってなってる。
0548デフォルトの名無しさん (ササクッテロラ Sp37-gjPF)
2017/01/12(木) 20:21:07.84ID:EuCQnJSXpC++テンプレート含めて動作性能求めてコードジェネレータは当然の結果
JavaやSwiftはそのコストなんて気にしてないけども
0549デフォルトの名無しさん (JP 0Hf2-dHfL)
2017/01/13(金) 10:56:53.83ID:A7lO7PxRH0550デフォルトの名無しさん (スッップ Sdd2-GRi3)
2017/01/13(金) 10:59:55.55ID:knpjVG01d0551デフォルトの名無しさん (スプッッ Sdd2-vkEW)
2017/01/13(金) 11:01:08.52ID:zzZzBy0Od0552デフォルトの名無しさん (オイコラミネオ MMce-kkJw)
2017/01/13(金) 16:06:30.15ID:qq8NhLIPMdelegateとprotocolの違いって何?
0553デフォルトの名無しさん (ワッチョイ 573c-dHfL)
2017/01/13(金) 17:55:00.38ID:le1wMpNu0技法や用語の類なので言語仕様と直接の関係は無いよ
0554デフォルトの名無しさん (ワッチョイ 92e5-kkJw)
2017/01/13(金) 18:32:25.12ID:cenlIzEl0ありがとう😊
0555デフォルトの名無しさん (ワッチョイ d35b-lDPz)
2017/01/13(金) 19:41:22.91ID:6sCHka4P0delegateの話は無しなのかぁ。
まあ、UIKit、AppKitの話だからなぁ。
0556デフォルトの名無しさん (ワッチョイ be5b-GRi3)
2017/01/14(土) 02:00:38.21ID:zbDc0ypE00557デフォルトの名無しさん (ブーイモ MM8b-0NVw)
2017/01/17(火) 12:02:14.54ID:cEkG7JbvMますます日本人のトヨタ離れが加速するな
0558デフォルトの名無しさん (JP 0Hf2-dHfL)
2017/01/17(火) 15:24:26.60ID:BOj3HsKUH0559デフォルトの名無しさん (ササクッテロラ Sp37-gjPF)
2017/01/17(火) 16:31:46.31ID:eAAsiKtXpLinuxないしmacOS, iOS上のソフトウェアに留まりそう
まぁそれでもテスラ上の開発がswiftになるならこれほど胸熱なニュースはswift史上にないな(そうなるとは思ってない
0560デフォルトの名無しさん (ワッチョイ 0353-0NVw)
2017/01/17(火) 17:18:09.57ID:KCosYzOz0というかビットバイトレベルの操作はCが一等書きやすいのは今後も変わらん
Swift登場後はポストCはどの言語かという議論はナンセンスだと思うわ
0561デフォルトの名無しさん (ワッチョイ 0353-0NVw)
2017/01/17(火) 17:47:17.45ID:KCosYzOz0日本にいると気づきにくいが他の国ではそもそもSwiftを走らせる機会に乏しいのだ
サーバーサイドでもGo、node.jsやJavaを差し置いてSwiftを採用するメリットは現状乏しい
ラトナーは日本人のオタクばっかりが飛びついてバカッターであることないこと吹き回ってる現状を前に
未来への展望が見えなくなってしまったのかもしれない
もしかしたらSwiftが流行るかどうかは日本人次第と言えるかもしれない
Swiftはラトナーから日本人への置き土産だったのだ
0562デフォルトの名無しさん (ワッチョイ 0353-0NVw)
2017/01/17(火) 17:53:53.67ID:KCosYzOz0ラトナー「やべえ一番面倒なお客さんに好かれちまった・・・この言語もうだめだわ」
となったに違いない。俺ラトナーの気持ちよくわかるわ
0563デフォルトの名無しさん (ワッチョイ d3c9-pk1x)
2017/01/17(火) 18:00:12.82ID:1PLMnPDO0飽きるのも速いからな
0564デフォルトの名無しさん (ワッチョイ f34e-TjL7)
2017/01/17(火) 18:01:11.31ID:1+zZwnvK0一瞬、「置き土産」をポジティブに捉えてるのかと思ったよ
0565デフォルトの名無しさん (ワッチョイ 0353-0NVw)
2017/01/17(火) 18:22:17.10ID:KCosYzOz0いやまあ適当におもしろおかしく書いただけなんで俺の意思は上のレスのどこにもないよ
0566デフォルトの名無しさん (スッップ Sdd2-0Plu)
2017/01/17(火) 18:57:54.94ID:N7dBiTg5dビット、バイトの操作はアセンブリ言語の方が楽。
0567デフォルトの名無しさん (ワッチョイ 0353-0NVw)
2017/01/17(火) 19:02:14.58ID:KCosYzOz0楽が何を指してるのかわからんがアセンブリでARMからx86まで対応したコード書く気ですか
0568デフォルトの名無しさん (ブーイモ MM8b-0NVw)
2017/01/17(火) 19:16:55.24ID:cEkG7JbvM軽く社運賭けてそうだったもんな
0569デフォルトの名無しさん (ワッチョイ 72c9-lDPz)
2017/01/17(火) 19:45:51.46ID:94EBDj3G0メーリスでも発言が頻繁だったわけでもない
Swiftはとうにラトナーの手を離れて歩きだしてる
0570デフォルトの名無しさん (ワッチョイ f38f-JEwG)
2017/01/17(火) 20:39:45.87ID:L9ZJiwd400571デフォルトの名無しさん (ワッチョイ 12cf-kkJw)
2017/01/17(火) 21:00:56.60ID:cY3pxmYi0それなら、よそのAPI取り込み選択肢があったのにねぇ。
0572デフォルトの名無しさん (スプッッ Sdf2-k0Ff)
2017/01/17(火) 21:29:33.05ID:diZtCuN9d0573デフォルトの名無しさん (ワッチョイ 72c9-lDPz)
2017/01/17(火) 22:46:01.20ID:94EBDj3G00574デフォルトの名無しさん (スプッッ Sdf2-k0Ff)
2017/01/18(水) 11:32:43.43ID:QZC6aztod0575デフォルトの名無しさん (ワッチョイ 573c-dHfL)
2017/01/18(水) 14:04:31.66ID:mYaS/Vd70実用コードで見掛けることは無いだろうけど
let a = Optional(Optional(Optional(0)))
let aa = a???.hashValue
let b = Optional(Optional(0))
let bb = b!!
0576デフォルトの名無しさん (ササクッテロリ Sp37-gjPF)
2017/01/18(水) 18:04:04.22ID:I9cdn/V3prustスレに遊びに来た荒し、数時間で挫折したぞ
borrow checkerはARCより死ぬほど扱いが難しい
その割りにARCと実動作に大差ないからメリットが少ないって冷静に判断されそう
0577デフォルトの名無しさん (ワッチョイ d35b-lDPz)
2017/01/18(水) 21:45:54.00ID:LJhKuLVS0Swift Standard Library -> Swift Standard Library Operators
0578デフォルトの名無しさん (ワッチョイ f642-dHfL)
2017/01/18(水) 21:46:51.93ID:fhQVy3CG0それは言語として威張れるところか?w
0579デフォルトの名無しさん (ワッチョイ f34e-TjL7)
2017/01/18(水) 21:53:24.02ID:B+OX1k7v0ownershipで考えるからややこしいんだろ
reference countのARCのがシンプル
0580デフォルトの名無しさん (ササクッテロリ Sp37-gjPF)
2017/01/18(水) 22:18:00.91ID:I9cdn/V3p一応、「nilsafeだから安全(笑)」とswiftを馬鹿に出来るくらい不正ポインタアクセスに対して安全だから、、、
その代償のコーディング難易度がくっそ高いから日曜プログラマがちょっと遊びでには向かない
まぁ、業務にもその難易度のせいで上流行程へ採用提案しづらいんだけど
要は、日曜プログラマに愛されて、アポー信者の上流行程を騙しやすいswift最強ってこった
0581デフォルトの名無しさん (ワッチョイ 72c9-lDPz)
2017/01/18(水) 22:56:42.20ID:g+H+g1Pr00582デフォルトの名無しさん (ワッチョイ c33c-3qL8)
2017/01/19(木) 07:59:17.73ID:FKxmZ7fp0Rustのメモリ管理 ≒ C++のauto_ptr(暗黙move, unique_ptrの先代)
Rustのborrowingはauto_ptr::getとほぼ同じ
ただし解放されたものを参照しないようlifetimeの手厚いサポートがある
ARCの方がコーディングは楽だろうけど
Rust方式は渡したものを保持して遅延使用するのか
関数から戻った時点で使い終わってるのかを
言語レベルで扱えたりするから一長一短ではある
まぁSwiftにもクロージャに関しては@escapingがあるけど
0583デフォルトの名無しさん (ワッチョイ ffc9-mu6I)
2017/01/19(木) 20:32:11.50ID:VasCiZ4n0ただ、SwiftはKotlinのoptional, Rustのif letを言語仕様でパクってあってコーディングが楽
この部分だけObjCにバックポートしたら便利なんじゃね?とふと思った
__nullable, __nonnullとか微妙なキーワードによるバックポートは正直使いづらい
0584デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/19(木) 22:19:36.62ID:w+bE5wHza0585デフォルトの名無しさん (オイコラミネオ MMff-Taza)
2017/01/20(金) 15:40:14.18ID:ZOjl9uXaM0586デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/20(金) 16:00:12.37ID:is3Fha3paって感じでいいんじゃね
0587デフォルトの名無しさん (JP 0H87-Taza)
2017/01/20(金) 16:35:51.58ID:6bMM3T6GH0588デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/20(金) 17:08:41.66ID:is3Fha3paということで
0589デフォルトの名無しさん (スップ Sd1f-ddg/)
2017/01/20(金) 18:43:31.96ID:2Wi9HN+wd男か女か解らない人がいるんだけれど、喉仏が出ているから、男って事で。
みたいな?
0590デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
2017/01/20(金) 19:05:32.26ID:4nNA4c16p実際問題、プログラミング知識が乏しいと
型推論と型宣言と動的型を区別できないから説明省いて良いと思う
0591デフォルトの名無しさん (ワッチョイ 738f-ILNu)
2017/01/20(金) 22:51:19.05ID:/kNqqxub00592デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/20(金) 23:13:59.78ID:sVl+H8Xfa0593デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/20(金) 23:59:07.88ID:sVl+H8Xfaって感じで同じ型の変数に値を一気に代入できないのは不便だよね
0594デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
2017/01/21(土) 01:50:38.98ID:d82h9KNNp0595デフォルトの名無しさん (ワッチョイ 6f5b-JNK/)
2017/01/21(土) 01:51:05.02ID:W/zpHkC+00596デフォルトの名無しさん (ササクッテロロ Sp87-UhX6)
2017/01/21(土) 02:08:12.56ID:wL4zqwoRp0597デフォルトの名無しさん (オッペケ Sr87-+PXi)
2017/01/21(土) 19:37:18.34ID:aueqPNmbrつまりc++が最強?
0598デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/23(月) 21:45:03.95ID:RV5yVqC700599デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/23(月) 21:59:18.58ID:RV5yVqC70例えばビューのカスタムクラス作って、そこのポップアップボタンとかのアイテムにセレクターつけるとするじゃん。
そんでそのクラスのインスタンスをペアレントのビューに複数おいてどれかのアイテムクリックすると、
別のインスタンスのセレクタが呼ばれちゃわね?二つ目のインスタンスのボタン押したのに、一つ目に反映されたりする。
このカスタムクラス複数インスタンス化においてのNotificationとか、selectorとかで困ってんの、どうやって回避する?
0600デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/23(月) 22:05:37.88ID:WrhQGC6sa俺のエスパー能力が正確なら、Outlet Collectionでググるといいかもしれない
0601デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/23(月) 22:06:59.56ID:WrhQGC6saやっぱエスパーさんの登場を待とう
0602デフォルトの名無しさん (ワッチョイ f35b-jh1Y)
2017/01/23(月) 22:11:15.46ID:Llx+8S3H0俺も何いってるのか?
さっぱりだわぁ
0603デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/23(月) 22:26:13.92ID:RV5yVqC70ググってくるわーthx
0604デフォルトの名無しさん (ワッチョイ 33a1-U6eW)
2017/01/23(月) 22:26:58.66ID:sPzCf4bI00605デフォルトの名無しさん (ワッチョイ c33c-3qL8)
2017/01/23(月) 22:29:39.75ID:Ws+iSkNs0UIViewControllerでなくUIViewを継承
0606デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/23(月) 22:35:00.65ID:RV5yVqC70NSMenuItemからいくと、postじゃなくてaction限定になってるんじゃないかな?限定的でスマソンだけど
>>605
OSXでNSViewを継承
0607デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/23(月) 22:44:47.72ID:RV5yVqC70あとNameもインスタンスだと同じになって別のインスタンスが呼ばれちゃう。
でもこれは登録する時にNameにインデックスとか何らかIDつけると回避できそうな気がするけど、メニューアイテムだと
menu?.addItem(NSMenuItem.init(title: name , action: #selector(selected(_:)), keyEquivalent: ""))
みたいな感じで付け入る隙がないんだ
0608デフォルトの名無しさん (ワッチョイ 6f5b-JNK/)
2017/01/23(月) 22:54:40.36ID:wkYluZkM00609デフォルトの名無しさん (ワッチョイ c33c-ddg/)
2017/01/23(月) 23:00:43.39ID:d7Gq4/N70「ポップアップボタンとか」の「とか」は、「ポップアップボタン」以外の何?
そもそもAppleは、ポップアップボタンなんてものは提供していないがな。
それにiOSでは、クリックなんかはできない。
HumanInterfaceGuidelinesを読み直して出直した方が良いな。
0610デフォルトの名無しさん (ワッチョイ 9339-u5as)
2017/01/24(火) 00:55:51.35ID:exkLo0yv0こういうことしたい時はどうすればいいんでしょう
Cで
for(i = 'a'; i <= 'z'; i++){
putchar(i & 0x5f);
}
putchar('\n')
みたいなのを swiftで書く場合って…
for i in ???...??? {
もうわからん
}
0611デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 01:24:22.63ID:6XEtipUUaくんな感じ?
for ch in "a".utf8.first!..<"z".utf8.first! {
print(Character(UnicodeScalar(ch & 0x5f)))
}
もっとスマートな書き方があるかも知らん
0612デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/24(火) 01:33:52.81ID:7WmLdbGx0let str = "abcdefghijklmnopqrstuvwxyz"
for c in str.characters{
print(c)
}
がんばれ
0613デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 01:43:19.82ID:6XEtipUUaそれ文字列の中を順に表示してるだけじゃん
0614デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/24(火) 01:56:29.31ID:7WmLdbGx0これ何で大文字になんの?
0615デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
2017/01/24(火) 01:57:25.69ID:7WmLdbGx0>>611の間違い
0616デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 02:07:07.07ID:6XEtipUUa0617デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 02:10:03.40ID:6XEtipUUafor val in UnicodeScalar("a").value...UnicodeScalar("z").value
{
print(String(format: "%c", val).uppercased())
}
0618デフォルトの名無しさん (スッップ Sd1f-JNK/)
2017/01/24(火) 02:22:36.10ID:kY6N+f51dクッソ読みにくいな
さすがSwift()だわ
0619デフォルトの名無しさん (ワッチョイ c33c-ddg/)
2017/01/24(火) 05:59:43.55ID:odFyaWZN0何だ?Asciiコードって。
SUICAカード
電球の球
頭痛が痛い
地震が揺れた
0620デフォルトの名無しさん (ワッチョイ 9339-u5as)
2017/01/24(火) 07:47:42.37ID:exkLo0yv0>>611
ワイの求めていたものに近い
見てたら意味的には
>>617のがよさげ
別に小文字を大文字にしたいわけじゃなくて
文字コードを数値で扱いたく
かつ数値を文字にしたかった
例えば大量のテストデータを自動生成するとか
発想が Cなので、そういうやり方しか思いつかないんだけど
手段にたどりつけないで試行錯誤してます
0621デフォルトの名無しさん (ワッチョイ 9339-u5as)
2017/01/24(火) 07:50:49.58ID:exkLo0yv0それは思いついたけどスマートじゃないと思った
例えばその "a-z" の文字列を生成したい時にどうするかというのが気になった
Cなら例えば
atoz = malloc('z' - 'a' + 2);
p = atoz;
for(c = 'a'; c <= 'z'; c++) {
*p++ = c;
}
*p = 0
ってできるじゃん
それを "abc...z" って26文字ぐらいならベタで書けるけど
これを "aa"〜"zz"までとか量が増えて行ったら
ベタでは書けないなぁとか。
てかなんで for ch in 'a'...'z' って書けないんだよ
それぐらいやらせてくれよ
0622デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
2017/01/24(火) 10:19:40.46ID:PbjuVM+3p万が一、将来AaBbC...yZzって並ぶ文字コードが世界標準になったら
'a'...'z'が書ける言語仕様にしてたらどうすればいいか分かんないじゃん
これは極端な例だけど、要はそういう不意の事象に耐える意識高い言語仕様にswiftはなってる
0623デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 10:32:22.93ID:8WMehL2Va今更文字コード変えられたら、どっちみちコンパイルし直しになるし
どんだけ既存のプログラムに影響出るんだよw
0624デフォルトの名無しさん (ワッチョイ ff4c-Taza)
2017/01/24(火) 10:52:16.06ID:bcJOEpSP00625デフォルトの名無しさん (ワッチョイ c33c-3qL8)
2017/01/24(火) 11:01:02.71ID:HBr+KooL0>文字コードを数値で扱いたく かつ数値を文字にしたかった
一応部品化すれば本処理部分は多少は見やすく・・・
func irange(_ a:UnicodeScalar, _ b:UnicodeScalar) -> CountableClosedRange<UInt32> {
return a.value...b.value
}
func nchr(_ a:UInt32) -> UnicodeScalar {
return UnicodeScalar(a) ?? "?"
}
for i in irange("a", "z") {
print(nchr(i & 0x5F))
}
0626デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
2017/01/24(火) 11:16:48.70ID:PbjuVM+3pソースファイルの話ならjavac -encodingみたいに対応すればいい
ランタイム内はそれが変動出来るようにString.utf8やUnicodeScalarがある
ソースファイルの文字コードに影響されるってC言語かよw
0627デフォルトの名無しさん (ワッチョイ 335b-wAZW)
2017/01/24(火) 12:08:53.72ID:gy8Md2CU00628デフォルトの名無しさん (アウアウオー Sadf-WaXM)
2017/01/24(火) 12:14:47.00ID:8WMehL2Vaどんな言語だって困るだろ
文字コードの大小に依存してるコードなんてごまんとあるぞ
0629デフォルトの名無しさん (ワッチョイ c33c-M+yL)
2017/01/24(火) 17:34:40.36ID:+WwPKdrl0https://kotobank.jp/word/%E3%81%A8%E3%81%8B-582055#E3.83.87.E3.82.B8.E3.82.BF.E3.83.AB.E5.A4.A7.E8.BE.9E.E6.B3.89
0630デフォルトの名無しさん (ワッチョイ 9339-u5as)
2017/01/24(火) 19:57:41.91ID:exkLo0yv0イイね
ただ大文字化したいというよりは
こういった基本的な処理を身に着けたい
今まで Cや Perlでやってたことが
swiftでもできたらなぁって感じ
できないと俺の寿命がストレスでマッハ
0631デフォルトの名無しさん (スッップ Sd1f-JNK/)
2017/01/24(火) 21:29:28.75ID:6Rgy6vgTd0632デフォルトの名無しさん (アウアウウー Sa67-WaXM)
2017/01/24(火) 21:47:34.41ID:KTC1YGyNa0633デフォルトの名無しさん (ワッチョイ a3d4-hfv1)
2017/01/24(火) 22:31:37.74ID:GRF78Bhf00634デフォルトの名無しさん (ワッチョイ cf42-3qL8)
2017/01/24(火) 22:35:46.17ID:L2GKKZjf00635デフォルトの名無しさん (ワッチョイ a3d4-hfv1)
2017/01/24(火) 22:50:13.02ID:GRF78Bhf00636デフォルトの名無しさん (ワッチョイ ffc9-NwiU)
2017/01/24(火) 23:30:23.92ID:Khh2743H0extension UnicodeScalar : Strideable {
public func advanced(by n: Int) -> UnicodeScalar {
return UnicodeScalar(self.value.advanced(by: n))!
}
public func distance(to other: UnicodeScalar) -> Int {
return other.value.distance(to: self.value)
}
}
extension UnicodeScalar : BitwiseOperations {
public static var allZeros: UnicodeScalar = UnicodeScalar(UInt32.allZeros)!
public static func &(lhs: UnicodeScalar, rhs: UnicodeScalar) -> UnicodeScalar {
return UnicodeScalar(lhs.value & rhs.value)!
}
public static func ^(lhs: UnicodeScalar, rhs: UnicodeScalar) -> UnicodeScalar {
return UnicodeScalar(lhs.value ^ rhs.value)!
}
public static func |(lhs: UnicodeScalar, rhs: UnicodeScalar) -> UnicodeScalar {
return UnicodeScalar(lhs.value | rhs.value)!
}
public static prefix func ~(rhs: UnicodeScalar) -> UnicodeScalar {
return UnicodeScalar(~rhs.value)!
}
}
for c in UnicodeScalar("a")...UnicodeScalar("z") {
print(c & UnicodeScalar(0x5f)!)
}
0637デフォルトの名無しさん (アウアウウー Sa67-WaXM)
2017/01/25(水) 08:50:03.50ID:WD3nSRWWaもうC言語でいいわ
0638デフォルトの名無しさん (エムゾネ FF1f-JNK/)
2017/01/25(水) 09:06:42.63ID:Xv7wslg5F基本読みにくいんだよなSwift
0639デフォルトの名無しさん (ワッチョイ c33c-3qL8)
2017/01/25(水) 10:23:43.05ID:2+5m68360結局リテラルがアレなんだよな
型指定しないとStringになるから俺はStrideable断念して引数使ったけど
シングルクォートのリテラルを言語仕様に入れなかった理由がよく分からない
0640デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
2017/01/25(水) 10:39:46.63ID:+ZiK5CtYp古い言語にならってASCIIを想像する人もいれば、今時ならUTF8だと想像する人もいるだろうし、フレームワークに合わせてUnicodeと言う人もいる
落とし所のない不毛な議論が目に見えるから、検討したけど削除した仕様な気がする
0641デフォルトの名無しさん (ワッチョイ c33c-3qL8)
2017/01/25(水) 11:04:36.57ID:2+5m68360既にUnicodeに盛大に引っ張られてる気もする
let c = Character("あ" + "゚")
まぁ何らかの検討はあったんだろうけど・・・
0642デフォルトの名無しさん (ワッチョイ 734c-JNK/)
2017/01/25(水) 20:41:52.96ID:RfIl6u1t00643デフォルトの名無しさん (アウアウウー Sa67-WaXM)
2017/01/25(水) 20:56:49.37ID:xQi6cekNa0644デフォルトの名無しさん (スプッッ Sd1f-CBoF)
2017/01/25(水) 21:09:38.61ID:d9MKwq+md0645デフォルトの名無しさん (ワッチョイ 1342-3qL8)
2017/01/25(水) 22:58:32.84ID:CYUx5EoW0Java
Java
Java
Java
0646デフォルトの名無しさん (ワッチョイ 1342-3qL8)
2017/01/25(水) 23:07:52.05ID:CYUx5EoW00647デフォルトの名無しさん (ワッチョイ 1342-3qL8)
2017/01/25(水) 23:12:20.50ID:CYUx5EoW0Swift字数おおくないか
ライブラリの名前がいちいち長ったらしいし
関数に引数の名前2つがデフォとかげんなりするし
try!に至ってはもう
0648デフォルトの名無しさん (ワッチョイ 0f4c-2P18)
2017/01/26(木) 01:40:32.20ID:9A8WN5h/0そ、そうね…
落ち着いて考えるとCで簡潔に書けることも長ったらしいし、それでいて読みにくい
Swiftって一体どこがいいんだろう…
0649デフォルトの名無しさん (ワッチョイ 2b10-Ve17)
2017/01/26(木) 02:37:16.34ID:dAEo4WV40obj.doSomething(true, false, true)みたいなやつ
標準APIだとそういうのは良くないってわかってるのかあんまりないけど、誰かが適当に作ったライブラリだとそんなのがよく出てくる気がする
0650デフォルトの名無しさん (スッップ Sdca-2P18)
2017/01/26(木) 03:07:53.57ID:26kSGCXVdクソ過ぎやしないか?
Objective-Cのままでいいわまじで
0651デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/26(木) 07:35:18.87ID:8RDF259k0それとクロージャ構文にプレフィックスが不要なところも
代わりにスコープブロックにdoが必要だけど2文字は許容範囲内
0652デフォルトの名無しさん (ワッチョイ 7e0d-Spol)
2017/01/26(木) 08:13:25.19ID:O9H7zUJg0Stringのメンバを見るとCharacterとUnicodeScalarは同列っぽいよ
どちらもUnicodeを内部エンコードに扱ってるからそれらはUnicode依存のフレームワークの様子だけど
同じ層にUTF8, UTF16もいるからいつかCharacterUTF8, UTF8Scalarみたいな構造体もできるかもなw
0653デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/26(木) 09:33:06.97ID:8RDF259k0String.initに格差があってね
この差も疑問なんだけど
let ca:[Character] = ["a", "b", "c"]
let ua:[UnicodeScalar] = ["a", "b", "c"]
let cs = String(ca)
let us = String(ua) //これが出来ない
let us = String(ua.map(Character.init)) //これは出来る
0654デフォルトの名無しさん (アウアウウー Sa7f-4cPM)
2017/01/26(木) 10:39:40.20ID:k8NBikxqavarとletの明確な使い分けも、それがない言語だと逆にモヤッとする
0655デフォルトの名無しさん (ワッチョイ 6ac9-P4zY)
2017/01/26(木) 10:57:10.28ID:KCQLgRNZ0今ちょうどSwift4でStringどうするか議論の真っ最中だから
0656デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)
2017/01/26(木) 11:04:45.63ID:CKOy8ZWqp>>653もCharacterとUnicodeScalarをまとめた上位インターフェース作るだろ(適当
0657デフォルトの名無しさん (オイコラミネオ MM76-bF0B)
2017/01/26(木) 11:10:44.87ID:NOZ2YrK+M言葉で説明するのは難しいですわ
nilチェックして強制アンラップでもいいだろって思われそう
どう思う?
0658デフォルトの名無しさん (オイコラミネオ MM76-bF0B)
2017/01/26(木) 11:15:35.23ID:NOZ2YrK+MAppleのリファレンスは説得力あるわ
0659デフォルトの名無しさん (ワッチョイ 1b3c-R94c)
2017/01/26(木) 23:16:58.81ID:ufLIfALs0初心者だから全然想像できん
0660デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)
2017/01/27(金) 08:27:01.41ID:Zy0rRYCMp定期乙
0661デフォルトの名無しさん (ワッチョイ 6f5b-ci5U)
2017/01/27(金) 17:31:32.73ID:MVo+YM4y0俺は重宝してるけど。
_ = someMethod()
0662デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)
2017/01/29(日) 13:24:08.53ID:MpcYD/kypいつ変わったんだ、便利じゃねーか
0663デフォルトの名無しさん (ワッチョイ 833c-T3y8)
2017/01/29(日) 14:08:41.99ID:PyqVv5fH0宣言じゃなくて、定義じゃね?
0664デフォルトの名無しさん (ワッチョイ 9733-4cPM)
2017/01/29(日) 15:05:33.45ID:3Y3DXVvV00665デフォルトの名無しさん (ササクッテロラ Sp13-4cPM)
2017/01/29(日) 15:25:26.09ID:yL6xb8U5p0666デフォルトの名無しさん (ワッチョイ 833c-T3y8)
2017/01/29(日) 17:02:22.62ID:PyqVv5fH00667デフォルトの名無しさん (スッップ Sdca-2P18)
2017/01/29(日) 17:03:21.38ID:htBmfO4kd0668デフォルトの名無しさん (アウアウウー Sa7f-4cPM)
2017/01/29(日) 17:19:12.25ID:EnysbUOea0669デフォルトの名無しさん (ワッチョイ 9739-4eSF)
2017/01/30(月) 07:33:20.34ID:qYAaUQoA0引数にラベルが必須でないというのは
可読性の確保という面で
選択肢として存在するのはアリだと思うな
0670デフォルトの名無しさん (ワッチョイ 2b8c-EfrK)
2017/01/30(月) 08:01:35.96ID:Jmyw1tRr0ObjCみたいにC APIだけは別の表記するならいいけどさ
0671デフォルトの名無しさん (スップ Sdca-eBhG)
2017/01/30(月) 09:17:47.99ID:djGawl3Pd最近の次世代言語は関数型ばかりだからswiftが最後の希望や
0672デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/30(月) 17:37:30.67ID:5ceKaohv0DictionaryのValueをOptionalにした場合の
削除とnil設定のオーバーロード区別
http://swiftlang.ng.bluemix.net/#/repl/588ef6a306f99d213b3a7f3a
0673デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/30(月) 20:30:32.06ID:5ceKaohv0http://swiftlang.ng.bluemix.net/#/repl/588f20efcf58891f104c975c
どちらにも言えることだけど
意味的に異なるオーバーロードがあると厄介
0674デフォルトの名無しさん (ワッチョイ 9733-4cPM)
2017/01/31(火) 08:04:31.17ID:TojTxigN0仕様ころころしててイライラしてるんだけど
0675デフォルトの名無しさん (スプッッ Sd6a-eBhG)
2017/01/31(火) 09:09:51.57ID:qlhVwcaGd0676デフォルトの名無しさん (ササクッテロリ Sp13-vNtw)
2017/01/31(火) 10:07:32.51ID:Wlpmu9Pop破壊変更がないとしてもだ
なんで詳細Swiftなんて買ったと言わざるをえない
Qiitaで直近の記事を漁った方がよほど有効だろうよ
0677デフォルトの名無しさん (ワッチョイ afc9-4cPM)
2017/01/31(火) 10:44:07.96ID:IISx8Cj70keySortedメソッドの引数
by:(Key,Key)->Bool
がよく判りません。
Key型を要素とするタプルを取ってBoolを返すclosure byって意味なんだと思いますが、Key型ってなんですか?
0678デフォルトの名無しさん (アウアウウー Sa7f-4cPM)
2017/01/31(火) 10:57:03.39ID:13oBEuV5a引数を2つとってBoolを返すクロージャだろ
0679デフォルトの名無しさん (オイコラミネオ MM76-bF0B)
2017/01/31(火) 11:38:05.84ID:5xUQa1EZM0680デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/31(火) 12:46:54.40ID:E6Yo5vL90ジェネリクスの型パラメータ名
http://swiftdoc.org/v3.0/type/Dictionary/
> struct Dictionary<Key : Hashable, Value>
extensionの中では元定義にある型パラメータ(Key, Value)や
Associated Types(Element, Indexなど)が使える
[Int:Int?] は Dictionary<Int,Int?> の糖衣構文
0681デフォルトの名無しさん (ワッチョイ afc9-4cPM)
2017/01/31(火) 14:26:38.67ID:IISx8Cj70納得です。
ジェネリクスの型パラメータなんですね!
それでも、こう書くとコンパイルできない。なんでだ?
func keySorted(by:(Key, Key)->Bool) -> [(Key,Value)] {a, b in
return self.sorted{by(a.key,b.key)}
0682デフォルトの名無しさん (ワッチョイ 833c-AZYz)
2017/01/31(火) 14:49:05.08ID:E6Yo5vL901つ目の{は関数本体の始まり、2つ目の{がクロージャー
func keySorted(by:(Key, Key)->Bool) -> [(Key,Value)] {
return self.sorted {a, b in
by(a.key, b.key)
}
}
0683デフォルトの名無しさん (ワッチョイ afc9-4cPM)
2017/01/31(火) 15:12:54.62ID:IISx8Cj70あんた!親切だなぁ。
0684デフォルトの名無しさん (ワッチョイ 1b3c-R94c)
2017/01/31(火) 22:05:26.16ID:Jtcmcjs90ドットインストールは全部やってしまった
0685デフォルトの名無しさん (アウアウウー Sa7f-4cPM)
2017/01/31(火) 22:25:58.19ID:cYDluZxDa英語だけど
0686デフォルトの名無しさん (ワッチョイ 7fa1-+rHU)
2017/01/31(火) 22:39:58.93ID:BjflOzhk0それより何作ったらいいかな?
0687デフォルトの名無しさん (ワッチョイ 7eba-eBhG)
2017/01/31(火) 22:59:56.23ID:rB3HMGuL00688デフォルトの名無しさん (ワッチョイ afc9-4cPM)
2017/02/01(水) 10:21:51.18ID:P9C8z9K60しばらくどころか、公式ドキュメントはズゥートお世話になります。
何言ってるか?チンプンカンプンなところもあるけど。
UITableViewの2つのメソッドの使い方がよく判らん。
dequeueReusableCell, register
0689デフォルトの名無しさん (ワッチョイ afc9-4cPM)
2017/02/01(水) 10:38:50.47ID:P9C8z9K60日本語、独学だけでiOSアプリを自在に作れる様にはなれない。
英文でしか、入手できない情報が多いから。
英語で情報取れるなら、独学でOK!
これが現実。
0690デフォルトの名無しさん (ワッチョイ aade-EfrK)
2017/02/01(水) 11:44:08.43ID:nI3xSAO90http://potato.2ch.net/test/read.cgi/mac/1470902093/
0691デフォルトの名無しさん (スプッッ Sd6a-T3y8)
2017/02/01(水) 12:10:48.46ID:rrXFdmRqdちょっと違うんじゃないないかな。
Appleは、公式に日本語資料もリリースしているけれども、最終的には英語の資料を見るように書いてある。
それに、帰結すると思う。
よって
> 英文でしか、入手できない情報が多いから。
では無くて、英文で入手しなくてはならない。
> 英語で情報取れるなら、独学でOK!
これが現実。
まーこれは、正解。
その通りだね。
0692デフォルトの名無しさん (オイコラミネオ MM76-bF0B)
2017/02/01(水) 12:12:02.48ID:smtLVi82Mそのメソッドはね、セル自体を更新する時に使うよ
チェックマークをつけたり、外したり
0693デフォルトの名無しさん (ワッチョイ 13b6-UFRj)
2017/02/03(金) 09:03:28.41ID:QkHJCDQQ0今、macでテストアプリ作ってるんですが、
アプリ内のボタンを押したらキーボードでショートカットを入力した状態(画面切り替えの' ^← 'とか)にする方法はないでしょうか?
ご教授お願いいたします
0694デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)
2017/02/03(金) 10:34:26.43ID:9keII8ru00695デフォルトの名無しさん (スフッ Sd9f-4SR0)
2017/02/03(金) 12:29:41.54ID:REH9prgEd古い話にレスつけて悪いが
この場合のdelegateはiOS/macOSのライブラリの話なので
言語の教科書には出てこない
操作対象と処理を行う所を分けるしくみの概念的な名称
勉強したければiOS/macOSのプログラミングの資料を参照するとよい
protocolはSwiftの言語仕様なのでSwift言語の教科書で説明される
共通の名称で処理を受け付けることを保証するしくみ
OSのdelegateの多くはswiftではprotocolを使って実装されている
0696デフォルトの名無しさん (ワッチョイ 13c9-kDlj)
2017/02/03(金) 12:54:13.39ID:OvWQoQse0制御の逆転、っていう設計を実装する時にでてくるパターンとか、プロパティー変数だとかなんだよねぇ。
だから、言語の教科書には出てこない。Design Patternの本には出てくるかも。
教科書に出てきていても良い様な気がするけど、そんな事を上手く説明できる
著者も少ない事もあって、和文では良い説明がされているのを見た事無いなぁ。
delegateがわからんと、Framework/Libraryの違いが理解できんからね。
まあ、ここの辺りが障壁になってるから、俺みたいなおっさんでも食っていける
わけだが!
0697デフォルトの名無しさん (アウアウウー Sa07-kDlj)
2017/02/03(金) 13:07:30.01ID:QCj1HTOka設計する側になるとあれやろうけど
0698デフォルトの名無しさん (ワッチョイ 13b6-UFRj)
2017/02/03(金) 14:12:12.30ID:QkHJCDQQ0スレチみたいなので他のところ行ってきます
すみませんでした
0699デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/03(金) 15:29:58.35ID:p7fNNQ2Y0詳解Objective-Cにはデリゲートの節があるよ
分かりにくいから役には立たないけどね
0700デフォルトの名無しさん (ワッチョイ 934e-2G09)
2017/02/03(金) 15:59:32.48ID:GQ++c1010delegaterにdelegateeの参照を持たせてコールバックしてもらう
tableViewにviewControllerの参照を持たせてcellForRowを呼んでもらう
0701デフォルトの名無しさん (ワッチョイ 934e-2G09)
2017/02/03(金) 16:02:25.45ID:GQ++c10100702デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/03(金) 17:13:14.47ID:p7fNNQ2Y0delegateって言葉は基本的に委譲先のオブジェクトを指す言葉として使われてると思うよ
delegate == delegate object == delegatee
https://developer.apple.com/library/prerelease/content/documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html
0703デフォルトの名無しさん (スフッ Sd9f-4SR0)
2017/02/03(金) 19:50:02.27ID:REH9prgEd言語の話と、OSやライブラリの仕組みの話と、開発ツールの話が
違うってことに気付かないんだよね
でもこれに気づけないと、正しい教科書にすらたどり着けない
意外と大きな落とし穴
0704デフォルトの名無しさん (ワッチョイ 135b-C9DF)
2017/02/03(金) 20:01:45.15ID:j/Uvz34o0自分が何を知りたいのか?が判るまで、結構時間かかる人多いね。
0705デフォルトの名無しさん (アウアウウー Sa07-kDlj)
2017/02/03(金) 20:55:42.27ID:MnLqnHc9a以上。
0706デフォルトの名無しさん (スフッ Sd9f-4SR0)
2017/02/04(土) 15:18:45.31ID:EO0q2wxld自動化に主眼があるならAutomatorかAppleScript
テストに主眼があるならXCTestのUITest
あたりなんだろうけど、残念ながら詳しくは無い
0707デフォルトの名無しさん (ワッチョイ 3fb6-UFRj)
2017/02/04(土) 21:20:56.34ID:hsGpXHdO0おおお!ありがとうございます!
applescriptをswiftで呼び出したらいいのかな?
やってみます!
0708デフォルトの名無しさん (ワッチョイ 3fb6-UFRj)
2017/02/04(土) 21:54:16.56ID:hsGpXHdO0できました!
本当にありがとうございます!
0709デフォルトの名無しさん (ワッチョイ b333-tZqJ)
2017/02/04(土) 21:55:53.65ID:TiE86E8B00710デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/04(土) 22:36:30.18ID:2gkSNY4M0//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)
0711デフォルトの名無しさん (ワッチョイ ff93-4SR0)
2017/02/05(日) 11:11:41.55ID:vWH4gLvD0なんかお役に立てたようで
ほとんど当てずっぽうだったんだけどね
可能なら、SwiftからAppleScript呼び出す辺りのコードを公開してもらえれば
他の人の参考になるかも
0712デフォルトの名無しさん (ワッチョイ 135b-vqxm)
2017/02/05(日) 11:19:54.99ID:DgXxXeRF0import Foundation
let task = NSTask()
task.launchPath = "/usr/bin/osascript"
task.arguments = ["~/Desktop/testscript.scpt"]
task.launch()
0713デフォルトの名無しさん (ワッチョイ 7f3c-mNa5)
2017/02/05(日) 14:35:54.66ID:PLwA9BVe0スレの勢いも無くなってきてる。
一発屋だったのかこの言語。
0714デフォルトの名無しさん (アウアウウー Sa07-kDlj)
2017/02/05(日) 14:49:06.57ID:u0BexBI4aObj-Cと比べて体感的に記述量が4割減に感じますわ
0715デフォルトの名無しさん (ワッチョイ b333-kDlj)
2017/02/05(日) 15:53:34.11ID:nMpDa1VZ0ってわけではないと聞いたことがあるのですが実際の所どうでしょうか?
0716デフォルトの名無しさん (ササクッテロリ Spa7-gHkU)
2017/02/05(日) 15:57:06.80ID:u0uQCFq0p0717デフォルトの名無しさん (アウアウウー Sa07-kDlj)
2017/02/05(日) 16:34:01.05ID:u0BexBI4aObj-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プログラマを横目に定時に帰って彼女とイチャイチャしてます。
もっと早くやっとけばよかった・
0718デフォルトの名無しさん (ワッチョイ 135b-vqxm)
2017/02/05(日) 17:09:05.45ID:DgXxXeRF0Obj-Cってあんまり書いた事無いので参考になりました。
詳解Obj-Cってのを中古本で買って、ペラペラやった位なので、
ほんとご意見参考になりました。
0719デフォルトの名無しさん (ワッチョイ 037b-eX/G)
2017/02/05(日) 17:13:01.45ID:iKJkAlzP0お前さんみたいな荒らしの勢いが落ちてるって、それ一番言われてるから
Apple信者 vs Appleアンチ: betaから1.x
Swiftユーザ vs ObjC信者: 2.x
Swiftユーザ vs C++ユーザ: 3.0前後
beta以来、こんな対抗煽りがあったけどC++煽りが通用しなくなってきて勢い落ちてる
そろそろ vs 新興言語(Rust, Go)で荒らす時期なんじゃないの?(助言
0720デフォルトの名無しさん (ワッチョイ b333-kDlj)
2017/02/05(日) 17:59:05.07ID:nMpDa1VZ0www
0721デフォルトの名無しさん (ワッチョイ 3fb6-UFRj)
2017/02/05(日) 19:08:24.19ID:VgP7nWQb0こんな方法もあるんですね!
こっちも試してみます。ありがとうございます。
>>711
記述方法があってるかはわかりませんが、初心者なのでご容赦ください。
こんな感じでキAppleScriptを呼び出しました。
let appleScript = 「使いたいAppleScriptの記述」
NSAppleScript(source: appleScript)?.executeAndReturnError(nil)
0722デフォルトの名無しさん (ワッチョイ cfba-uZek)
2017/02/05(日) 22:21:36.88ID:o/8EHNtf0この邪魔くさいラベルが必要な理由を教えてください
0723デフォルトの名無しさん (アウアウウー Sa07-kDlj)
2017/02/05(日) 22:33:36.96ID:4p/Nn5VFa0724デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/05(日) 22:55:46.13ID:eIQFXmLo0これははげしく同意
理由は名前と引数・戻り値の型が同じでも引数の外部名が違えば違う関数として扱いたいから
NextStepの遺産じゃないのかな
0725デフォルトの名無しさん (ササクッテロリ Spa7-gHkU)
2017/02/05(日) 23:04:05.83ID:u0uQCFq0p>>650
0726デフォルトの名無しさん (ワッチョイ 7fc9-SsPq)
2017/02/06(月) 00:44:00.22ID:SAGpF4BT0なるほどね。とりあえず彼女のスリーサイズとカップ数をあげてくれ
0727デフォルトの名無しさん (ワッチョイ 633c-0MWP)
2017/02/06(月) 00:49:54.19ID:dg7Gkhyu0他言語でも特に分かり辛い引数は説明用変数を用意したりしてたから
俺の場合ラベルはすんなり腑に落ちたな
sh.shiftRows(r, r, 1, true, false);
↓
boolean copyRowHeight = true;
boolean resetOriginalRowHeight = false;
sh.shiftRows(r, r, 1, copyRowHeight, resetOriginalRowHeight);
0728デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)
2017/02/06(月) 01:01:01.45ID:3ZIy1rLW0named parameterでググれよ
0729デフォルトの名無しさん (ワッチョイ cfba-UJvE)
2017/02/06(月) 01:20:02.58ID:0dGh9mJF0なるほど理解しました
swiftに採用したのは頂けませんね
第一引数だけラベル必要としないのがまた理解に苦しみます
0730デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/06(月) 01:27:27.04ID:+8BGH8XP0必要な時に書けるようになってるのは何も悪くない
(foo, bar)ってタプルを使いたい時に( _: foo, _: bar)って書かないといけなかったらキレるよね
0731デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/06(月) 01:33:52.92ID:+8BGH8XP0>第一引数だけラベル必要としないのがまた理解に苦しみます
それはSwift3で修正されたんじゃ?
0732デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)
2017/02/06(月) 02:21:15.75ID:3ZIy1rLW0それなのにその存在しないコストを気にして関数定義時に毎回わざわざ "_" 書いてるって?
ドMなのかな?
0733デフォルトの名無しさん (アウアウウー Sa07-kDlj)
2017/02/06(月) 02:42:20.02ID:My0G4nGHa英語が苦手なやつほど、いろんな所を省略したがる
変数名とか関数名も面倒くさがって日本語名を使う傾向がある
func shohizeiKeisan(kakaku: Int) -> Int
みたいな感じで定義するから、呼び出し側で
let kekka = shohizeiKeisan(kakaku: 1200)
みたいな呼び出し方になってラベルの冗長性があまり効果的に使われない
たまに英語を使ったか思えば、綴りを間違ってたり変な短縮の仕方してたりする
オープンソースにすると恥ずかしいレベル
0734デフォルトの名無しさん (アウアウウー Sa07-kDlj)
2017/02/06(月) 02:49:54.81ID:My0G4nGHaみたいに書けば
let tax = calculateTax(forPrice: 1200)
違和感ないんだけど
0735デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/06(月) 05:03:00.89ID:+8BGH8XP0>let tax = calculateTax(forPrice: 1200)
こういう例がSwift本でもよくあるんだけどマジックナンバーを直接書くことなんてほぼないからね
calculateTax(price)で十分なところを
calculateTax(forPrice: price)みたいな冗長な表現になってノイズが増えることのほうが多い
0736デフォルトの名無しさん (ワッチョイ ff93-4SR0)
2017/02/06(月) 08:42:17.87ID:VccDqIOI0さんきゅ
参考になります
0737デフォルトの名無しさん (スプッッ Sd9f-UJvE)
2017/02/06(月) 09:08:43.07ID:cYxXlAn6dほんとそれ
0738デフォルトの名無しさん (スフッ Sd9f-4SR0)
2017/02/06(月) 09:48:23.52ID:6ukkaCk+dせっかく今からSwift勉強するならSwift3にしませう
0739デフォルトの名無しさん (エムゾネ FF9f-4SR0)
2017/02/06(月) 10:13:04.33ID:LieVvyVtF実際には引数の違いで長ったらしい関数名になっているライブラリなどの場合には
関数名を短く、同じ関数名を使用する事が出来るので理解しやすくなる
教科書の例題に出てくる程度の関数の量と名前の長さなら問題無いんだけどね
0740デフォルトの名無しさん (アウアウウー Sa07-kDlj)
2017/02/06(月) 10:16:13.86ID:bt8MJocIa渡すべき引数も様々に変わる。
だから、関数の仕様を把握する上で俺は>>735の書き方に違和感は感じないけれど、それが冗長に思えるならもう感覚の問題というしかないな
0741デフォルトの名無しさん (ワッチョイ a317-4SR0)
2017/02/06(月) 10:26:20.88ID:pkGDAQrJ0property宣言したら自動でsynthesizeされるので記述不要
何年か前からね
0742デフォルトの名無しさん (ワッチョイ 633c-vqxm)
2017/02/06(月) 10:26:53.85ID:vLeuYaJ10func calc消費税(価格: Int) -> Int
これだとIDEで保管もしてくれるし、最高!
自分は日本語使ったことないけど
0743デフォルトの名無しさん (ササクッテロリ Spa7-gHkU)
2017/02/06(月) 10:30:32.27ID:VcPP6UDEpネタでも最高!とか言っちゃえる辺りがすごい
0744デフォルトの名無しさん (ワッチョイ 633c-vqxm)
2017/02/06(月) 10:33:25.09ID:vLeuYaJ10お前Xcode使ってないの?
関数を使用する時は、最初の数文字入力するだけで保管されるんだぜ?
作成時のコスト?大したことねーよ、きっと
0745デフォルトの名無しさん (ワッチョイ 633c-0MWP)
2017/02/06(月) 10:34:23.91ID:dg7Gkhyu0その手の冗長性は俺としては良いと思うんだけどな
受け売りだけど「間違ったコードは間違って見えるようにする」という観点的に
受ける側と渡す側の合致が目視で分かるのは安心感がある
まぁ適度を考慮してアンダースコアも割と使うけど
0746デフォルトの名無しさん (ササクッテロリ Spa7-gHkU)
2017/02/06(月) 10:44:17.12ID:VcPP6UDEp「きっと」にワロタw
0747デフォルトの名無しさん (スプッッ Sd9f-UJvE)
2017/02/06(月) 11:25:24.96ID:2jscAFeGd普通は他人にわかるようにするためにドキュメントコメントを付けるものだからやっぱりラベルなんていらんね
>>739の利点なら理解はできるけど
0748デフォルトの名無しさん (アウアウウー Sa07-kDlj)
2017/02/06(月) 11:32:13.07ID:bt8MJocIaうん普通はね
でも世の中には強制でもされないとコメント書かない奴がいっぱいいる
それに関数ベースで説明的なラベルが付いてれば、わざわざ関数のコメント読まなくても
IDEの補完が効いて関数の仕様を理解しやすい
0749デフォルトの名無しさん (スフッ Sd9f-4SR0)
2017/02/06(月) 12:19:34.07ID:6ukkaCk+dうちの合言葉は
「読みやすいソースとコメントは半年後の自分へのメッセージ」
「多少冗長に思えても、半年後の自分が困らないように書こう。書き直しも躊躇するな。」
以前は「メンテする人・使う人」だったんだけど「半年後の自分」に言い換えてから
割と真面目に対応してくれる人が増えた
0750デフォルトの名無しさん (ワッチョイ 132b-eX/G)
2017/02/06(月) 12:19:53.13ID:QBi3Y3km0今のObjCやSwift I/Fみたいに[前置詞]だけのラベルにはその論(ラベルだけで説明)は時代遅れだと思った
今は「ラベルは前置詞、変数名は名詞」で定義して、IDE(Xcode)のコード補完で関数説明じゃない
あ、コメントは書かないやつ多いし、自分もせっせと書くの面倒だから、関数定義で説明できるのは好ましい
0751デフォルトの名無しさん (ワッチョイ 132b-eX/G)
2017/02/06(月) 12:21:28.85ID:QBi3Y3km00752デフォルトの名無しさん (ワッチョイ a317-4SR0)
2017/02/06(月) 12:46:46.20ID:pkGDAQrJ0Swiftだと日本語の関数名も補完されるのか。いいな。
Objective-Cだと日本語が混ざると補完が効かなくなったはず。
0753デフォルトの名無しさん (ブーイモ MMc7-XgLl)
2017/02/06(月) 15:47:59.82ID:0PGGfaNyM他言語ってLLだろどうせ。LLで言語名乗るなよスクリプトっていえよ
TypeScriptでもScalaでもJava (lombok)でもカタいのは全てlabel付きの方向に行ってるのに
この時代に乗れない男を引き取ってくれる優しい言語はこの先現れるのだろうか
破棄、再評価を繰り返すこの業界で全くないとは言い切れんが
0754デフォルトの名無しさん (ワッチョイ 13c9-kDlj)
2017/02/06(月) 16:37:12.35ID:M531ILGV0メソッド呼び出し時にラベルとともに引数を書くのはSwiftだけだと思ってたら、そうじゃないのね?
いまScalaってのをググってみたけど、ラベルなしでメソッド定義、呼び出ししてるみたいだが?
0755デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/06(月) 16:51:52.57ID:7LeUyz1la0756デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/06(月) 17:58:08.26ID:+8BGH8XP0呼ぶ側にラベルを強制する必要なんてないでしょ
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が既存ライブラリへの影響を最小限にするための苦肉の策だよ
0757デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)
2017/02/06(月) 18:58:04.37ID:3ZIy1rLW0それ誰かがうっかり
CalculateBMI(height, weight);
って書いてエンバグしてた場合気付けなくね
それともC#って順番じゃなくて変数名で引数に対応付けてくれんの?
JavaScript(ES2015)ではObjectを引数に取ることで疑似名前付き引数にする手法とObject Literal Shorthandの合せ技でそういうこと出来るようになってるけど
0758デフォルトの名無しさん (ササクッテロロ Spa7-kDlj)
2017/02/06(月) 19:38:32.44ID:+DEdH8rPp関数を書いた本人は引数の順番知ってるかもしれんけど、第三者とか未来の自分はどうだろう
0759デフォルトの名無しさん (スプッッ Sd9f-UJvE)
2017/02/06(月) 21:30:09.99ID:2jscAFeGd0760デフォルトの名無しさん (ワッチョイ 633c-vqxm)
2017/02/06(月) 22:16:02.24ID:vLeuYaJ10自分が使う時は見るけれど、後から第三者が書いたコード読むときにいちいち確認するのはめんどくさい
0761デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/06(月) 22:18:34.56ID:+8BGH8XP0>>758
最終的にはテスト書こうねって話だけど
ある程度の補完機能のあるエディタを使ってれば定義を見ながらコード書くから順番が分からないこともないし間違える可能性もすげー低い
それでも可能性はゼロじゃないけどこの手のミスを防ぐためだけなら可読性を犠牲にするほどの価値があるとは思わない
アンスコ書かなくてもデフォルトは省略可能で強制したい時だけ指定できるようにすれば十分
静的型付け言語なんだから型チェックに引っかかるような書き方を楽にできるようにしていくほうが言語としてはいい気がする
0762デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/06(月) 22:41:12.32ID:eyNF5CHCa引数の多いAPIとか呼び出す時もわかり易い
そもそも他の言語だって、関数を定義する時は引数名と型を指定するわけで、そこの労力は変わらない(Swiftの場合は、引数名に加えて別のラベル名も指定できるけど、これは別に書かなければ引数名がそのままラベル名になる)し、
関数を呼び出す時も、何度も言うけどXcodeの補完が効くので、tabキー押しながら値を埋めていくだけで特に手間はかからない
そこまでラベルを嫌がる理由が俺には理解できない
0763デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)
2017/02/06(月) 22:48:44.79ID:3ZIy1rLW0static int CalculateBMI(int height, int weight) {...}
に変わってたら?
ラベル書いてればコンパイラが引数間違ってるよって教えてくれるけど、間違える可能性すげー低いという思い込みでラベル書かない人は絶対気付けないよ
テスト書けばいい?
その前にまずラベル書いてくださいよ(苦笑
0764デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/06(月) 22:52:49.93ID:eyNF5CHCa可読性を犠牲にって、ラベルのおかけで可読性は上がると思うんだが...
無茶苦茶なラベル名つけてない限り
0765デフォルトの名無しさん (ワッチョイ cfba-UJvE)
2017/02/06(月) 22:57:21.06ID:0dGh9mJF0そんな変更を勝手に加える危ないAPIなんて使わないという選択をまず取る
0766デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/06(月) 22:59:24.91ID:eyNF5CHCa0767デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/06(月) 23:29:35.74ID:+8BGH8XP0ラベル書いてたら普通はエラーにならずそのまま使えるよ。Swift以外ではね
可読性が上がるのなら書くしそうじゃないなら書かない、そういう選択肢が無いのが俺は嫌
0768デフォルトの名無しさん (ワッチョイ cf42-qddC)
2017/02/06(月) 23:29:54.33ID:DXHlWVxm0c#、pythonみたいにラベル=仮引数名で十分
0769デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/06(月) 23:39:42.35ID:eyNF5CHCa選択肢あるだろ アンスコ( _ )
0770デフォルトの名無しさん (ワッチョイ cfba-UJvE)
2017/02/06(月) 23:57:51.11ID:0dGh9mJF00771デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/07(火) 00:02:13.06ID:d/8njjdTaいやそれは昔からあるObj-Cで書かれたAPIの呼び出し方に合わせるためだろ
0772デフォルトの名無しさん (ワッチョイ 7fc9-vqxm)
2017/02/07(火) 00:03:29.25ID:U45A8ASp0API Design Guidelines読めよ
ラベルなし全てが否定されてるわけじゃない
単に面倒だとか安全性を考えてないとか他の言語では〜とかそういうアホな考えでラベルなしを選択するのがアホの極みだっていうだけだ
0773デフォルトの名無しさん (ワッチョイ 7f85-0MWP)
2017/02/07(火) 00:52:48.71ID:ZXoOddG/0自分で設定するの?それとも
ViewControllerのこと?
0774デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/07(火) 01:02:31.40ID:d/8njjdTaつうか質問する時に説明を省くんじゃねーよ
Autolayoutの親Viewってどこに書いてあったんだよ
それが書かれた文脈がわからないと想像でしか答えられんわ
つうか疲れたからもう寝る
0775デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/07(火) 02:36:50.69ID:GtuDXK2z0w マジレスするとアンスコにしたらラベル付き呼びたくても呼べない その逆もしかり
関数作る時に他言語では不要な意思決定がSwiftでは必要
言語仕様が変わらない限りどうしようもないからこの話題はこの辺で
0776デフォルトの名無しさん (ササクッテロラ Spa7-kDlj)
2017/02/07(火) 02:51:43.97ID:XrNu72Jopそんな器用なことしたいならオーバーロードすればいいだ
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)
0777デフォルトの名無しさん (スフッ Sd9f-4SR0)
2017/02/07(火) 08:38:57.64ID:7sv3izQhdラベルが要らないと思ったからアンダースコアにしたんだろ?
言ってる事が矛盾してね?
呼び出し時にラベルを付けたいと思うなら
それはラベルを付ける価値があるという事で
強制されたところでだれも不便に思わないよ
0778デフォルトの名無しさん (スフッ Sd9f-4SR0)
2017/02/07(火) 08:41:22.70ID:7sv3izQhd>関数作る時に他言語では不要な意思決定がSwiftでは必要
無自覚に行われる小さな意思決定をプログラマに明示的に自覚させると言うのは
Swiftの設計思想の結構大切なところだと思うよ
0779デフォルトの名無しさん (ワッチョイ c366-4SR0)
2017/02/07(火) 21:14:52.34ID:4jeefcmH00780デフォルトの名無しさん (スフッ Sd9f-4SR0)
2017/02/07(火) 21:31:12.11ID:7sv3izQhd0781デフォルトの名無しさん (ワッチョイ b333-mNHV)
2017/02/07(火) 22:24:06.04ID:ZIH2X64r00782デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/07(火) 22:28:45.43ID:GtuDXK2z0関数作る時に決めるべきことと使う時に決めるべきことの違いを理解しようか
0783デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/07(火) 22:42:00.91ID:xaIKpgD2a例えば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)
0784デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/07(火) 23:01:01.74ID:xaIKpgD2apublic 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)
}
}
0785デフォルトの名無しさん (ササクッテロリ Spa7-gHkU)
2017/02/07(火) 23:02:03.89ID:EhOLSQDnpそんな真面目に相手しなくても良いだろうに
相手してる子も荒しで、荒し同士の空中戦かもだけど
0786デフォルトの名無しさん (ワッチョイ 7f3c-6sTg)
2017/02/07(火) 23:07:09.27ID:GtuDXK2z0作る時の労力が増えるだけじゃなく使う時にコード補完で区別つかない
現状は一見同じシグニチャに見えるメソッドが2個ずつ並ぶことになる
それでもメリットが上回ると思う場合があったらはオーバーロードすればいいじゃね
0787デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/07(火) 23:12:30.28ID:xaIKpgD2aそれよりも早くリファクタリングできるようにしてほしい
Swiftの仕様が完全に固まるまで対応しないつもりかね
0788デフォルトの名無しさん (アウアウエー Sa5f-kDlj)
2017/02/07(火) 23:20:36.88ID:xaIKpgD2a労力?
別バージョンのシグニチャを用意するぐらい然程労力とも思えないけど
全ての引数の組み合わせでラベル有無バージョンを用意したいってのなら別だけど
そこまで自由度を待たせるなら、ディクショナリ一つを引数にして、キーを引数名にした方が、設計意図にあってるかものしれない
0789デフォルトの名無しさん (ワッチョイ a317-4SR0)
2017/02/07(火) 23:35:58.62ID:vFUY1Q6g0ライブラリ毎に流儀が存在したら使い辛い
0790デフォルトの名無しさん (ワッチョイ ff93-4SR0)
2017/02/08(水) 00:37:17.57ID:wuN4GLLw0それホント
リファクタリングアシスト早く欲しい
ちょっとした変数名、関数名の変更でもアシスト無いと億劫でつい放置しちゃう
0791デフォルトの名無しさん (スフッ Sd52-S0So)
2017/02/09(木) 19:29:33.72ID:bGGm+VsddXCodeでもdoxygenでもいいからさ
0792デフォルトの名無しさん (ワッチョイ 9293-S0So)
2017/02/11(土) 08:39:06.29ID:4V1/h4XS0誰か使ってない?
0793デフォルトの名無しさん (ワッチョイ cf3c-S0So)
2017/02/11(土) 15:54:18.34ID:oskBDXOt00794デフォルトの名無しさん (JP 0Hb3-8/DI)
2017/02/11(土) 16:26:02.45ID:bfT7og+wH0795デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)
2017/02/11(土) 16:38:59.73ID:Edv5NWG3a0796デフォルトの名無しさん (ワッチョイ 76ba-9CRV)
2017/02/11(土) 17:08:57.07ID:qQmrAco800797デフォルトの名無しさん (アウアウオー Sa8a-S0So)
2017/02/11(土) 17:19:51.41ID:2PZ2/Gs1aiOS用の言語なら在るだろうから、簡単じゃないかな。
Windowsストアアプリで全く同じ機能作った時に簡単に作れた。
0798デフォルトの名無しさん (ササクッテロラ Spf7-uAX+)
2017/02/11(土) 17:47:29.76ID:8E8IVrXfpいやまぁ理由は分かるんだが
>>793
初心者向けのiOSアプリ開発書籍買ったら良さげ
そろそろ swift 3 に対応した本が出てるだろ
0799デフォルトの名無しさん (ワッチョイ b285-cGUq)
2017/02/11(土) 17:51:07.98ID:ScJtra280C#に比べたら面倒
ボタンを配置して
swiftソースにACTIONでつないで
そこに>797のいうよう
やる感じ
ソースとして書く部分は10行もないかと
0800デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/11(土) 18:19:38.45ID:ria0yk5C0いろいろやり方あるけどAVFoundationのAVAudioPlayerを使うといいと思う
プログラミング初学者だといくつかはまりポイントあるだろうから困ったら質スレで聞けばいい
let soundURL = Bundle.main.url(forResource: “soundfile”, withExtension: "mp3")!
player = try! AVAudioPlayer(contentsOf: soundURL)
player.play()
0801デフォルトの名無しさん (ワッチョイ 935b-3OfB)
2017/02/11(土) 19:12:24.65ID:SqFaix0v0import 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()
}
0802デフォルトの名無しさん (ワッチョイ cf3c-S0So)
2017/02/11(土) 21:53:00.81ID:oskBDXOt0色々と調べたらAVFoundationのAVAudioPlayer使うことになりそうだ
>>800>>801のコードにボタンをACTIONでつなげれば良さそうだね
0803デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/11(土) 22:00:59.47ID:ria0yk5C0AVAudioPlayerのインスタンスを保持しておかないと音なる前に回収される
>>802
停止操作とか必要なくただビープ音的に鳴らしたいだけならSystem Sound Serviceってのもある
https://developer.apple.com/reference/audiotoolbox/system_sound_services
0804デフォルトの名無しさん (ワッチョイ 935b-3OfB)
2017/02/12(日) 10:06:48.35ID:jCqP/Xy60こんな感じね。
let soundIdRing:SystemSoundID = 1000 // new-mail.caf
AudioServicesPlaySystemSound(soundIdRing)
http://iphonedevwiki.net/index.php/AudioServices
0805デフォルトの名無しさん (ワッチョイ 52a6-yzHa)
2017/02/12(日) 17:36:05.74ID:wbmA90a/0もしバグなら報告したいけどやり方わからん
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)"
0806デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)
2017/02/12(日) 17:44:34.25ID:al1G+i0ka0807デフォルトの名無しさん (スップ Sd52-a31+)
2017/02/12(日) 18:33:13.51ID:Okkscphrdなんで仕様も知らないのに、バグだって解るの?
0808デフォルトの名無しさん (ワッチョイ 935b-3OfB)
2017/02/12(日) 18:38:31.94ID:jCqP/Xy60var affine = AffineTransform(scale: scale)
affine.append(AffineTransform(rotationByRadians: angle))
print(affine)
0809デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/12(日) 18:39:48.46ID:ashgYgUc0バグってるぽいね
ここのReporting Bugsのところ見て報告するといいんじゃないかな
https://swift.org/contributing/
どう見ても設定値(m11とか)を読んでない
https://github.com/apple/swift/blob/1b75481ab83ee69485170cb3c44622343be7e6a6/stdlib/public/SDK/Foundation/AffineTransform.swift#L168L179
0810デフォルトの名無しさん (ワッチョイ 935b-3OfB)
2017/02/12(日) 18:39:59.85ID:jCqP/Xy60ところで、API Referenceをどうやって引いてる?
API Referenceなんて見ずに、blogの情報とか、漁ってる?
0811デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/12(日) 18:43:54.40ID:ashgYgUc0var affine = NSAffineTransform(transform: AffineTransform(scale: scale))
affine.rotate(byRadians: angle)
0812デフォルトの名無しさん (ワッチョイ 935b-3OfB)
2017/02/12(日) 18:45:05.05ID:jCqP/Xy600813デフォルトの名無しさん (ワッチョイ 935b-3OfB)
2017/02/12(日) 19:02:44.16ID:jCqP/Xy600814デフォルトの名無しさん (ワッチョイ 9b33-C9ZD)
2017/02/12(日) 19:45:50.10ID:s4ykSwHK00815デフォルトの名無しさん (ワッチョイ b285-cGUq)
2017/02/12(日) 20:06:38.87ID:/n7GcIvt0再生速度を上げたりさげたりするのは
AVAudioPlayerでできるの?
0816デフォルトの名無しさん (ワッチョイ 935b-3OfB)
2017/02/12(日) 20:27:22.43ID:jCqP/Xy60ここ見ると
swiftコマンドを作るのに2hr位かかるって!ただし、プロセスを1に限定してメモリ不足を回避しているので、プロセスを4にする事で高速化できるかも。多分素直に4倍高速になる。
0817デフォルトの名無しさん (ワッチョイ 935b-3OfB)
2017/02/12(日) 20:28:28.95ID:jCqP/Xy60var rate: Float
The audio player’s playback rate.
ってかまじAPI Referenceみないの?
0818デフォルトの名無しさん (ワッチョイ 935b-3OfB)
2017/02/12(日) 20:55:59.50ID:jCqP/Xy60この本超気になってる。24日(金)までデカイ本屋に行けそうに無い。
田舎住まいなもんで。
どうしよう、中身見ないでAmazonで注文してみっか!
0819デフォルトの名無しさん (ワッチョイ 52a6-yzHa)
2017/02/12(日) 21:30:20.51ID:wbmA90a/0macOSの方です
バグレポートしようとしたらJiraってやつのログイン画面が出てきて詰んだ
0820デフォルトの名無しさん (ワッチョイ 52a6-yzHa)
2017/02/12(日) 21:39:30.82ID:wbmA90a/0基本的にはXCodeでクラス名をコマンドキー押しながらクリックしてる
それでわからなかったらgoogleしてる
0821デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/12(日) 22:11:58.80ID:ashgYgUc0アカウント作成してバグレポートを上げようよ
結構クリティカルだと思うし世界中のOSX開発者が助かるよ
ついでにテストコードも追加か修正してプルリクエスト上げるといいと思う
affinetransformで検索してもissueは上がってない
https://bugs.swift.org/issues/?jql=text%20~%20"affinetransform"
Openradarに似たようなのあったけど中身ちょっと違う
https://openradar.appspot.com/27793851
0822デフォルトの名無しさん (ワッチョイ 52a6-yzHa)
2017/02/12(日) 22:38:10.12ID:wbmA90a/0頑張ってみる
本当はgithubでプルリクエストしたかったけどswiftコマンドつくるの失敗に終わった
http://swift.orgにWifi(itscom)からだとアクセスできない助けて
携帯からなら繋がる
0823デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/12(日) 23:24:37.94ID:ashgYgUc0↓swift-corelibs-foundationをクローンしてFoundationだけビルドしてる例
http://dev.iachieved.it/iachievedit/compiling-open-source-swift-foundation/
0824デフォルトの名無しさん (ワッチョイ 52a6-yzHa)
2017/02/12(日) 23:42:42.26ID:wbmA90a/0おーーそんな方法があるのか
ありがとうございます
0825デフォルトの名無しさん (ワッチョイ 932b-yzHa)
2017/02/13(月) 09:03:20.14ID:s7YAQc1O0Class NSAffineTransform と Struct AffineTransform がInterchangableなのであって
Class NSAffineTransform と Class CGAffineTransform が互換あるとは言ってないような...
非publicなメンバの値まで一致させないといけない理由はないと思うんだ
0826デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 09:32:07.22ID:2bWgE/rs0仕様が曖昧なので、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を使えばいいワケだから。
0827デフォルトの名無しさん (ワッチョイ 932b-yzHa)
2017/02/13(月) 09:46:33.40ID:s7YAQc1O0そんな馬鹿なw従来この仕様で作って来たソフトがてんやわんやになるわ
いやまぁApple様がそう言うなら仰せの通りにって直すだけだけど
要はNS, CGの互換性はどうでもよくて
AffineTransformの仕様/実装が明記されてなくて気分悪いからバグ報告出そうぜってことか
僕が考えた最強のAffineTransformの仕様/実装が受け入れられるのかねぇ
0828デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 09:56:45.14ID:2bWgE/rs0AffineTransformはごく最近に導入されたので、仕様変更することでの混乱はまだ少ない。
Swift3.1, Swift4へとこの変な仕様が受け継がれていくのを防ぐのが得策だと思うなぁ。
0829デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)
2017/02/13(月) 10:11:14.17ID:LkG0cYl2a仕様だとしたら一貫性が無さすぎるし、利用者もそんな挙動は期待してないでしょ
tlanslateメソッドもscaleメソッドも、元の値を反映して更新かけるのに
rotateメソッドだけ、m11〜m22は元の値を破棄して、tX, tYは維持するってのが仕様だとしたら気持ち悪すぎる
0830デフォルトの名無しさん (ワッチョイ 173c-cGUq)
2017/02/13(月) 10:14:16.16ID:+QLG4LyN0appendしてくれる方がいいと思う
public mutating func rotate(byRadians angle: CGFloat) {
append(AffineTransform(rotationByRadians:angle))
}
0831デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 10:20:48.39ID:2bWgE/rs0AffineTransformの初期値は単位行列だから、それで良いかも。
0832デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 10:21:40.61ID:2bWgE/rs0いや、メソッド呼び出しにはコストがかかるから、m11, m12…とかの値をつかって、ちゃんと計算して欲しい。
0833デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 10:37:34.88ID:2bWgE/rs0Mutates an affine transformation matrix
ってコメントと
Creates an affine transformation matrix
っていうコメントが出てくる。
Muattesってのは、行列をappendするっていう意味で使ってるんじゃないかなぁ。
0834デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 11:00:26.80ID:2bWgE/rs00835デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 11:21:40.06ID:2bWgE/rs0ジェネリックなclassを定義する時<T>とかって型パラメータを記載します。
たとえば
class GeoPoint<T> {
}
ジェネリックなprotocolの定義では型パラメータ(付属型)をこんな具合に記述します。
protocol GeoPoint {
associatedtype T
}
なんで
protocol GeoPoint<T> {
}
って記述方法にならなかったんでしょう?
0836デフォルトの名無しさん (ワッチョイ 173c-cGUq)
2017/02/13(月) 14:12:54.92ID:+QLG4LyN0付属型が先にあって、ジェネリクスは後から実装されたため
手遅れだった
https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md
0837デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 14:45:06.42ID:2bWgE/rs0THX!
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) { ... }
}
0838デフォルトの名無しさん (ワッチョイ 52a6-yzHa)
2017/02/13(月) 15:04:45.79ID:E5GyABVO0英語できなすぎてちゃんと伝わるかはわからん
0839デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 15:09:24.97ID:2bWgE/rs0あんたは、偉い!
0840デフォルトの名無しさん (ワッチョイ f2c9-3OfB)
2017/02/13(月) 15:19:29.48ID:HAPf6MFC0associated typeは型の関係性を記述するもの、type parameterは型を具体化されるためのもので、そもそも目的が違うってことでしょ
0841デフォルトの名無しさん (ササクッテロリ Spf7-v7A7)
2017/02/13(月) 15:28:56.41ID:M5UvUgvDpこっちのPRを誰か、、、
0842デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/13(月) 16:16:43.69ID:tn7uWAuX0乙! 全世界が救われた
2回rotateさせるテストケースがあれば防げたろうに
mutaing funcはバグりやすいいい例かも
0843デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 16:35:02.82ID:2bWgE/rs0画像やBezierPathとか使わない人には、何のことやら判らんかもね!
0844デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/13(月) 17:09:58.36ID:2bWgE/rs0Report件数は徐々に増えている。ここ90日間を見ると。
単に関心を集めている事を示しているのか、bugが収束していかないのか、どっち?
0845デフォルトの名無しさん (ササクッテロリ Spf7-v7A7)
2017/02/13(月) 17:13:54.68ID:M5UvUgvDp0846デフォルトの名無しさん (ワッチョイ 173c-cGUq)
2017/02/13(月) 18:25:38.76ID:+QLG4LyN0プロトコルを受け取ることは出来ても
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>ですらない
今後もこれで行くのだろう
0847デフォルトの名無しさん (ワッチョイ f2c9-3OfB)
2017/02/13(月) 19:29:14.18ID:HAPf6MFC0Any<Point where .T == Float>って書けるようにするんでしょ
0848デフォルトの名無しさん (ワッチョイ 935b-3OfB)
2017/02/13(月) 21:21:52.09ID:MyT3Jhih0型消去なんて初めて知った。
VBAのVariant型みたいなクラス、構造体を作るんだって。
0849デフォルトの名無しさん (ワッチョイ b7bd-yzHa)
2017/02/13(月) 22:41:44.66ID:6dmT0k850そんな根幹I/Fを何度も変えるなと当時頭痛くなったわw
仕様破壊変更がある5.0までにまだまだ変わりそう
0850デフォルトの名無しさん (ワッチョイ 173c-cGUq)
2017/02/13(月) 23:16:42.44ID:+QLG4LyN0Move where clause to end of declaration(SE-0081)が決定済みなので
その書き方は将来的にも無くなってる
なので実装されても直の型でなくGeneric Type Aliasesを挟んでいく方向になるんじゃないかな
typealias AnyPoint<T> = Any<Point> where .T == T みたいな
例えそれでも _boxを抱えたstruct が消滅するならかなりすっきりするけど
0851デフォルトの名無しさん (ワッチョイ 9293-S0So)
2017/02/13(月) 23:30:02.41ID:yy8XR/E60乙々、
アフィン変換使わないから詳細はりかいできなかったけど
放置せずキチンとレポートするのは素晴らしい
0852デフォルトの名無しさん (ワッチョイ 9b33-C9ZD)
2017/02/14(火) 08:13:19.63ID:G4PVI11K0Swift最高!!!
0853デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/14(火) 08:39:20.94ID:oIIhH5jL0独自でIteratorを実装する人にしか影響ないんちゃう?
UIKit使ってiOSアプリ作る人の中で、独自のデータデータ構造を定義、実装する人なんて少ないと思う。
0854デフォルトの名無しさん (スプッッ Sd72-NOvL)
2017/02/14(火) 09:07:42.45ID:15O9OsV1d次世代言語のなかでは最も簡単で誰でも使えるとても良い言語だと思う
0855デフォルトの名無しさん (スップ Sd72-ogAn)
2017/02/14(火) 09:10:39.08ID:o1Hy+Q1/d0856デフォルトの名無しさん (ワッチョイ b7bd-yzHa)
2017/02/14(火) 09:12:13.53ID:j+ud4G/F0macOS, iOS専用言語じゃないという建前を現実にするためその辺の層を作ってると
メジャーバージョンアップの根幹I/Fのライブラリ仕様変更はいつも笑えるほどにアレなの...
StringやRaw Memoryも同じく未だに仕変が多いような
確かにそれで困ってるアホはSwiftに夢見る少数だから笑いながら扱っている:)
0857デフォルトの名無しさん (ササクッテロラ Spf7-CouY)
2017/02/14(火) 09:14:30.69ID:EC+U4L2lp0858デフォルトの名無しさん (アウアウエー Sa4a-CouY)
2017/02/14(火) 09:14:48.51ID:nwUJp3gZa0859デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/14(火) 09:47:42.81ID:oIIhH5jL0だれでも簡単に扱えない、C++みたいな運命を辿りかねない。
Standard Libraryの充実って所に力点を置き過ぎるのは、初心者に
言語使用デカすぎ!って印象を抱かせてしまう。
C++が2011年まで放置されたような事になっちゃうよ。
0860デフォルトの名無しさん (スプッッ Sd72-NOvL)
2017/02/14(火) 10:03:21.46ID:15O9OsV1dそこを批判するのはどうかとおもうね
いずれにしても必要なこと
0861デフォルトの名無しさん (ワッチョイ 173c-cGUq)
2017/02/14(火) 10:58:05.18ID:2PqESwAW0遅れはしたが別に放置はされてない
0862デフォルトの名無しさん (JP 0H72-cGUq)
2017/02/14(火) 12:09:10.49ID:OJnhURbNH0863デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/14(火) 14:11:53.20ID:gfvqdCIF0>関数内でのスタティック変数の宣言
スタティック変数を関数内で宣言したいってどういうケース?
0864デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/14(火) 14:14:19.93ID:oIIhH5jL0関数が何回呼ばれたかをカウントするために、static varしたいんじゃないか?
0865デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/14(火) 14:23:42.66ID:oIIhH5jL0let f = { cnt += 1; print("cnt = ¥(cnt)") }
f()
f()
f()
closure使えば、何回呼ばれたかは、カント可能なんだが、これじゃダメなのか?
0866デフォルトの名無しさん (ワッチョイ f2c9-3OfB)
2017/02/14(火) 14:23:49.58ID:LIVGV7l100867デフォルトの名無しさん (ササクッテロラ Spf7-CouY)
2017/02/14(火) 14:36:43.72ID:EC+U4L2lpstatic var count: Int
って宣言するだけで済めば便利だなと思っただけだよ
0868デフォルトの名無しさん (ササクッテロリ Spf7-v7A7)
2017/02/14(火) 15:12:32.02ID:W2b/azRYp出来ることとスマートであることは別だよね
0869デフォルトの名無しさん (ワッチョイ f2c9-3OfB)
2017/02/14(火) 16:00:12.19ID:LIVGV7l100870デフォルトの名無しさん (スフッ Sd52-S0So)
2017/02/14(火) 18:43:58.17ID:qIbz53rXdときどきでいいからc++17の事も思い出してあげて
0871デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/14(火) 19:45:15.25ID:gfvqdCIF0カウント処理をラップする関数を書いてそれにカウントしたい関数を渡したいところ
でもあらゆる型の関数(クロージャ)でも受け取って引数付きで実行するのってSwiftでできるんだっけ?
0872デフォルトの名無しさん (ワッチョイ f2c9-3OfB)
2017/02/14(火) 22:04:56.83ID:LIVGV7l10https://gist.github.com/JadenGeller/f8ad2574590f956fee92
古いから何箇所か手直しいるけどこんな感じで出来なくはないけど
0873デフォルトの名無しさん (ワッチョイ 173c-cGUq)
2017/02/14(火) 22:31:11.88ID:2PqESwAW0これと同じようなやり方で足りそうな所まで並べるしかない
https://github.com/thoughtbot/Curry/blob/master/Source/Curry.swift
0874デフォルトの名無しさん (ブーイモ MM52-mpSg)
2017/02/14(火) 22:54:22.13ID:+bEgvAQFMリセットするときどうすんの?
あまりに用途が限られるのでは…
0875デフォルトの名無しさん (アウアウエー Sa4a-CouY)
2017/02/14(火) 23:03:44.89ID:PDBDanqwacount = 0
でダメ?
Obj-Cで使う時と同じ
0876デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/14(火) 23:20:04.44ID:gfvqdCIF0�d
型を渡して、doAfterでラップして、callで呼ぶっていう3ステップはちときついね
前2つはカウント専用にすれば1ステップになるけどcallじゃなくカウント機能のついた関数を返してくれてそれを実行したいところ
あと引数の数の違いはタプルになるから問題なさそうだけど高階関数にも使えるんだろうか?
とりあえずSwift3で動くバージョン上げといた
https://gist.github.com/anonymous/ff4440ac74c87d451502984d3125b095
0877デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/14(火) 23:20:32.69ID:gfvqdCIF0これは辛い
0878デフォルトの名無しさん (ブーイモ MM52-mpSg)
2017/02/14(火) 23:26:04.59ID:y+v+ZN8qMそれを誰が指示すんの?
内部のstatic変数を初期化する引数を追加して使用者に指定してもらうの?
0879デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)
2017/02/14(火) 23:34:45.01ID:PDBDanqwaそれは引数で渡すのか他の変数の状態に依存するのか関数を書く人次第でしょ
C言語のstatic変数使ったことないの? ググってみれば?
0880デフォルトの名無しさん (ワッチョイ 9b33-C9ZD)
2017/02/15(水) 00:01:10.23ID:RQyBuwlX00881デフォルトの名無しさん (ワッチョイ f2c9-3OfB)
2017/02/15(水) 00:05:03.84ID:98yhGEhP0ラップされた側でさらにタプルに包んで渡さないといけないのがつらいけどこれどうにかできんかな
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
0882デフォルトの名無しさん (ワッチョイ 173c-cGUq)
2017/02/15(水) 00:25:36.90ID:rlmICMnW0http://swiftlang.ng.bluemix.net/#/repl/58a32121691eea40bd985ea3
0883デフォルトの名無しさん (ワッチョイ f2c9-3OfB)
2017/02/15(水) 00:38:51.58ID:98yhGEhP0なるほど、そうなるのか
0884デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/15(水) 01:03:41.72ID:WU5+o8Pm0>>882
いいねー
ただ現状は>>873と同じで引数の数でオーバーロードしておく必要があるってことだね
0885デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)
2017/02/15(水) 01:43:26.08ID:5Sts5aosastatic変数って別にカウント用途だけじゃなくて、例えば前回の状態を保持しときたい、だけどその状態を、メンバ変数として持つより、その関数だけに局所化しときたいし、クロージャを使うほど大仰でもないような時に便利なわけで
上の例みたいに回数をカウントするとか、前回の処理の成否を保持しといてリトライの制御に使ったり、メッセージ内容(何回失敗しました..)を変えたりとか、線の描画なんかで前回のクリック位置を覚えときたいとか、いろいろあるんだけど...
一番のメリットは、手軽に使えることだと思う。多用はいかんけど。
0886デフォルトの名無しさん (ワッチョイ f2c9-3OfB)
2017/02/15(水) 03:34:27.80ID:98yhGEhP00887デフォルトの名無しさん (ワッチョイ d3c9-C9ZD)
2017/02/15(水) 09:20:48.24ID:ItYgKVGf0THX a lot.
けどclosureを引数にとって、closureを返す関数の呼び出しってのは、頭クラクラする。
0888デフォルトの名無しさん (ササクッテロリ Spf7-v7A7)
2017/02/15(水) 10:01:52.43ID:er7cKMeEp多用するものじゃないけども
0889デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)
2017/02/15(水) 10:19:20.68ID:cA9nAL4taメンバ変数だと他のメソッドから意図せず変更される可能性がある
0890デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/15(水) 15:21:51.64ID:WU5+o8Pm0スタティック変数ってクラス変数のことでしょ?
クロージャ使う以外に他からの変更を防ぐ手段ってあるのかな
関数のメタデータに好きな値を設定する手段でもあればできるかもだけど
0891デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)
2017/02/15(水) 15:40:42.82ID:nbc++MSva上で話してるstatic変数は、クラス変数とはちょっと違う
C言語の関数内static変数のことで、性質的にはクラス変数に近いけど基本的にその関数内でしかアクセスできない
C言語由来のC++やObj-Cのメソッド内にも定義できる
0892デフォルトの名無しさん (ワッチョイ f2c9-3OfB)
2017/02/15(水) 15:54:15.06ID:98yhGEhP0他のメソッドに触られたくないとなったときに、クラスを分割するんじゃなくてstaticローカル変数でメソッドに閉じ込めたいという状況がわからない
オブジェクト指向的にはそのクラスが適切な凝集度に収まってないってことでしょ
staticローカル変数とかクロージャで状態を関数に閉じ込めてしまうとテストも難しくなる問題もある
0893デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)
2017/02/15(水) 16:13:28.40ID:nbc++MSva状況って改まって言われてもあれだけど、クラスの属性とするほどもない一時的な値を保持しときたい時とかかなぁ
例えば整数の並びを読み込みながら、直前に読み込んだ値との差を表示する処理があったとして、
func printDiffernce() {
static var prevValue: Int
if let curValue = self.getNextValue() {
print("difference = ¥(curValue - prevValue)")
prevValue = curValue
} else {
prevValue = 0
}
}
みたいな書き方ができれば便利じゃね?
個人的にSwiftにはスクリプト言語的な手軽さも期待してるんで、やっつけ仕事とかだと重宝すると思うんだけどね
0894デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/15(水) 17:54:12.90ID:WU5+o8Pm0自分が主に使ってきた言語でそういうのなかったから使ったことなかったわ
C++とObj-Cを除くとCのstatic local変数が実装されてるのはVB.NETくらいみたいね
0895デフォルトの名無しさん (ワッチョイ f23c-DoU+)
2017/02/15(水) 18:05:13.29ID:WU5+o8Pm0こういうので我慢してはどうだろうか?
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
}
}
自分ならインスタンス変数使うけど
0896デフォルトの名無しさん (アウアウエー Sa4a-C9ZD)
2017/02/15(水) 18:26:07.27ID:nbc++MSva一番お手軽な代替だけと無理やり感は否めないね
自分もそこまでやるなら素直にインスタンス変数使うわ
0897デフォルトの名無しさん (ワッチョイ f2c9-3OfB)
2017/02/15(水) 18:38:47.57ID:98yhGEhP0func 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ローカル変数があったとしても混乱の元でしかないようなきがする
0898デフォルトの名無しさん (スフッ Sd52-S0So)
2017/02/15(水) 18:47:02.04ID:ngDNeO3HdインラインCで書けないの?
0899デフォルトの名無しさん (スップ Sd52-ogAn)
2017/02/15(水) 18:57:43.93ID:Ngm4n4Trdwithout Cなモダンな言語SwiftでインラインのCなんか許されるわけねぇだろ
0900デフォルトの名無しさん (ササクッテロラ Spf7-C9ZD)
2017/02/15(水) 19:48:47.19ID:Whvl4rVxpそこは仕様を理解した上での使用ならいいのではという気がする
実際C++での振る舞いも同じだし、staticなんだからそれでいいだろうと
今までC言語で使ってた人には違和感はないでしょ
まぁSwiftは、曖昧でわかりにくい挙動は廃止の方向で動いてるっぽいからSwiftに組み込まれる可能性は低いだろうけど
0901デフォルトの名無しさん (ワッチョイ 9b33-ogAn)
2017/02/15(水) 19:57:33.26ID:RQyBuwlX00902デフォルトの名無しさん (スフッ Sd7f-yXFx)
2017/02/16(木) 09:38:14.22ID:y1APn5Gud再入不能になって、並列化が困難になるから
モダンじゃないよな
0903デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/16(木) 10:04:42.21ID:4SRfHRZm0なるほどぉ。
けど、そこはプログラマーを信頼して、static varできるfuncを許容するってのも選択肢かも。
0904デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/16(木) 10:21:22.38ID:4SRfHRZm0AffineTransform.rotate(byRadians:) can be wrong
まったくActivityが無いなぁ。まずいなぁ。
0905デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/16(木) 11:17:17.48ID:3C0NPS0iaインスンタンス間で共有される点では危険かもしれんが、それはクラス変数も同じだろ
スコープの認識で誤解を生む可能性が高いという点では同意するが
0906デフォルトの名無しさん (スフッ Sd7f-yXFx)
2017/02/16(木) 12:10:38.93ID:y1APn5Gudそういった話はPOSIX4にでも言ってくれ
何年も前に結論が出てるから遅きに失した感はあるけど
0907デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/16(木) 12:40:38.73ID:4SRfHRZm0POSIXってなんて発音してる?
ポジックス
ホジックス
ポシックス
どちらでしょう?
どこぞでJavaScriptをジャバスクって読んで炎上してました。
0908デフォルトの名無しさん (スップ Sd7f-PET2)
2017/02/16(木) 13:30:20.81ID:QNa2K6exdどう読んでもホジックスねーだろ
勝手にホジッてろ
0909デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/16(木) 14:04:26.99ID:4SRfHRZm0ちなみに、僕は
シィープラプラ
って言ってました。
やっぱり
シィープラスプラス
って言うべきでしょうかねぇ?
0910デフォルトの名無しさん (JP 0H1f-3aUF)
2017/02/16(木) 14:20:18.92ID:1VBkG9E6H0911デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/16(木) 14:39:47.25ID:4SRfHRZm0外人さんの発音を真似る事にします。
C++ = シープラスプラッス
JavaScript = ジャバスクリット
Swift = スイット
どうやらp, fって発音しないのかな?
0912デフォルトの名無しさん (ワッチョイ 3b3c-fFgi)
2017/02/16(木) 15:20:54.37ID:dgGiwFPU0p発音しないんか!
Pascal = アスカル
Python = ワイソン
0913デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/16(木) 15:41:59.99ID:4SRfHRZm0母音のあとのpは発音しない。
ip -> i
0914デフォルトの名無しさん (ワッチョイ 0b4e-N9BQ)
2017/02/16(木) 15:46:25.71ID:fb6O/m5X00915デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/16(木) 15:48:25.74ID:zitEQFpsahttps://www.youtube.com/watch?v=CdN-hZIq7p8
https://www.youtube.com/watch?v=jXHnq36i-mA
聞き取れないなら耳がおかしい
0916デフォルトの名無しさん (JP 0H1f-3aUF)
2017/02/16(木) 16:47:34.10ID:1VBkG9E6H0917デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
2017/02/16(木) 16:56:45.12ID:Om/f1qwp0そんなルールないでしょ
文末だったり次が子音の時に唇を閉じるだけで空気を吐き出さない人もいるから
それが音として聞き取れてないだけだと思うぞ
https://www.youtube.com/watch?v=JPUr5MgeDHM&start=103
0918デフォルトの名無しさん (ワッチョイ 5f85-eq+O)
2017/02/16(木) 16:58:53.36ID:Cc78fshD0おまえらどこの国の発音を想定してるの?
0919デフォルトの名無しさん (ワッチョイ 3b3c-Dr1I)
2017/02/16(木) 18:11:32.30ID:164TOoVr00920デフォルトの名無しさん (ワッチョイ eb33-ykbm)
2017/02/17(金) 03:44:46.12ID:7wkNsQja00921デフォルトの名無しさん (ササクッテロリ Sp9f-X9Uf)
2017/02/17(金) 08:02:46.95ID:3FtIr36Jp0922デフォルトの名無しさん (スプッッ Sd7f-PET2)
2017/02/17(金) 09:53:10.86ID:aT4GW3VEd0923デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/17(金) 10:02:21.81ID:Akp7bstt0let a: [Int] = Array(repeating: 1, count: 100)
let b: [Int] = Array(repeating: 10, count: 100)
a, bの内積をFoundationモジュールのThreadクラスを使って4つのスレッドを生成して計算するコードは、どんな具合になるのでしょう?
どなたか、適当なサンプルを紹介してください。
0924デフォルトの名無しさん (ササクッテロラ Sp9f-BRgT)
2017/02/17(金) 10:31:37.24ID:0upCUQyEpまず自分で考えたコードを示してどこで躓いてるかを質問しろ
0925デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/17(金) 11:17:40.03ID:Akp7bstt0いや、ごもっとも。
DispatchQueueやOperationを使った例は見つかるのに、Threadを使った例が見つからないんですよ。
前者2つは、生成スレッドの数をSystem側が制御するのが気にくわないです。
そこでPOSIX Threadを使いたいのですが、どうやってjoinするのか?
API Documentを見てもよく判らずお尋ねしたしだいです。
0926デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/17(金) 11:19:41.97ID:Akp7bstt00927デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/17(金) 11:27:15.67ID:EBBNx7lQahttps://developer.apple.com/jp/documentation/Multithreading.pdf
0928デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
2017/02/17(金) 11:43:43.16ID:Ev3rlX/U00929デフォルトの名無しさん (ササクッテロリ Sp9f-X9Uf)
2017/02/17(金) 12:41:49.31ID:zNlklL+qpイマドキSystem任せにしない方が不安定だろうに、大学の課題か何かかな
0930デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/17(金) 13:16:03.93ID:Akp7bstt0RubyのコードをSwiftに移植しようとしてます。
Mutexを使ってクリティカルセクションを設定したり、走り始めたThreadを待ち合わせるのはSwiftのFoundationモジュールのThreadクラスでどうするのかなぁ?と
思ってお尋ねした次第です。
0931デフォルトの名無しさん (スプッッ Sd7f-PET2)
2017/02/17(金) 13:18:54.00ID:aT4GW3VEd0932デフォルトの名無しさん (スフッ Sd7f-yXFx)
2017/02/17(金) 13:27:17.49ID:g7uCN/FDdThreadクラスもPスレッドも非推奨だから仕方がない
まずはOpeationQueueあたり使って見たら?
もちろん使用するスレッド数も制御できるよ
推奨の方法でどうしてもダメな理由が出てきてから
ThreadクラスやPスレッドに手を出したらいい
0933デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/17(金) 13:33:47.11ID:zATlaFwqa>>927の29ページ読んだか?
0934デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/17(金) 14:20:38.36ID:Akp7bstt0>>933
THX a lot
色々読んで、修行します。
0935デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/17(金) 14:28:58.70ID:Akp7bstt0はい、大当たり。
老害エンジニアです。
0936デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
2017/02/17(金) 18:25:26.76ID:Ev3rlX/U0https://swift.org/blog/swift-4-0-release-process/
0937デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/17(金) 19:22:45.52ID:FaJoTYRf0の安定化が最優先課題だって。
0938デフォルトの名無しさん (ワッチョイ 6b7b-ea4t)
2017/02/17(金) 19:26:10.74ID:nctM8eJ40老害に至る以前の世間知らずだにゃー
0939デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/17(金) 21:58:24.45ID:FaJoTYRf0Swift4ではString周りが大改革されるって。
現状のIndexを使った文字列アクセスは、なんかしっくりこなかったんだよなぁ。直感的では無かったし、やっぱり文字列は整数を使ってアクセスできなきゃダメだワサァ。
0940デフォルトの名無しさん (ワッチョイ fb17-yXFx)
2017/02/17(金) 22:02:19.90ID:gUVhRjes00941デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
2017/02/17(金) 22:20:48.18ID:uN4QBy3G00942デフォルトの名無しさん (ワッチョイ eb33-MFap)
2017/02/17(金) 22:39:06.54ID:7wkNsQja00943デフォルトの名無しさん (ワッチョイ 5f3c-extS)
2017/02/18(土) 00:59:35.29ID:OUHo6iYG0破壊的な変更入れていいものかねぇ。
0944デフォルトの名無しさん (ワッチョイ 0fba-PET2)
2017/02/18(土) 01:13:55.79ID:3KSwEFyS00945デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/18(土) 01:17:55.48ID:rKwnwDJ5a0946デフォルトの名無しさん (ワッチョイ 6b7b-ea4t)
2017/02/18(土) 07:40:22.96ID:XfVC26Fr0それを笑い飛ばせないSwift使いなんているわけない
0947デフォルトの名無しさん (ワッチョイ eb33-MFap)
2017/02/18(土) 07:51:02.96ID:KOOSHa+W00948デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/18(土) 09:32:42.49ID:bxFvL8ai0ECMA2015, 2016, 2017
0949デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/18(土) 09:34:20.94ID:bxFvL8ai0それは無い。
Unicode界隈はUTF-8で落ち着いている。
絵文字の増加が毎年の話題で、大した話では無い。
0950デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/18(土) 10:20:12.36ID:wNEbwMAxa0951デフォルトの名無しさん (ワッチョイ df93-yXFx)
2017/02/18(土) 10:29:13.37ID:CZJbBrsK0それを言うなら文字列の内部表現を想定しちゃいけないと書いてあるだろ
NSStringを与えて作ったStrungの内部表現はNSStringになって、
そうじゃない場合内部表現はユニコードスカラーになったり、
他の文字列への参照になったりするわけだから
0952デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/18(土) 10:54:09.73ID:wNEbwMAxa0953デフォルトの名無しさん (ワッチョイ db3c-yXFx)
2017/02/18(土) 11:41:47.59ID:NSF889Ks0import 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
}
0954デフォルトの名無しさん (ワッチョイ db3c-yXFx)
2017/02/18(土) 11:44:02.26ID:NSF889Ks0// エラーが起きたとき
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」
こんなエラーが出る
初心者でおかしな質問してるかもしれない
もしよかったらどこを直せばいいか教えてほしい
0955デフォルトの名無しさん (スップ Sd7f-MFap)
2017/02/18(土) 12:00:29.34ID:yNmDyf4Id0956デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
2017/02/18(土) 12:43:28.88ID:ss3TDen/0「内部コード」が「内部表現」ではなく「何を文字とするか」ならCharacterはユニコードのextended grapheme clusterで、各種文字列操作もそれに準じるのはSwift4前後でも変わらない
>>949
UTF-8で落ち着いてるというのはファイルのエンコーディングの話
ファイルのエンコーディングなら持ち回しやすさを考えてデータサイズが小さくてバイトオーダーを考慮しなくていいUTF-8が主流だし、
言語やOSの内部表現なら(サロゲートはあるが一応/昔は)固定長でUTF-32ほどは大きくないUTF-16が主流
>>950
どこ?
0957デフォルトの名無しさん (ササクッテロラ Sp9f-ykbm)
2017/02/18(土) 12:54:59.38ID:c9HMTA6gpAppleのSwift本(The Swift Programming Language)に
Behind the scenes, Swift's native String type is build from Unicode scalar values.
って書いてある
0958デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/18(土) 13:57:57.19ID:bxFvL8ai0Either utf-8, utf-16 or even utf-32 is made from Unicode scalar values, aka Unicode Code Point.
0959デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
2017/02/18(土) 13:58:35.10ID:oLH7rESg0ASCIIのみの場合はASCII、それ以外が含まれるとUTF16に切り替わる
NSStringはUTF16
>>954
エラーが起きたらまずエラーメッセージでググれ
0960デフォルトの名無しさん (ワッチョイ eb46-MFap)
2017/02/18(土) 14:00:54.45ID:zBLDkUJj00961デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
2017/02/18(土) 14:10:33.53ID:ss3TDen/0それはたぶんユニコードスカラーリテラルのことを言ってるんじゃないの
普通のStringは実装が_StringCoreで
https://github.com/apple/swift/blob/master/stdlib/public/core/StringCore.swift
_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/StringBuffer.swift
C文字列から作る系は全部_StringBufferにデコードされる
https://github.com/apple/swift/blob/master/stdlib/public/core/CString.swift
StaticStringはASCIIかUTF8か単一のUnicodeScalar
https://github.com/apple/swift/blob/master/stdlib/public/core/StaticString.swift
0962デフォルトの名無しさん (ワッチョイ dfa6-ea4t)
2017/02/18(土) 14:14:39.39ID:YlQzCJd/0>>954
ストリーボードにあなたが貼り付けたボタンを右クリックしてみて
でてきた画面の中に定義されてない関数があるはずだからそれを消せばOK
0963デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/18(土) 14:16:47.01ID:bxFvL8ai0あんた凄いなぁ。
俺なんか、Unsafe族が現れたら、クラクラしてきて戦意喪失。
0964デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
2017/02/18(土) 15:30:42.50ID:yZwtGkz90「unrecognized selector sent to instance」の後にそのselectorの名前が書いてあると思うからそこを修正すればいい
>>962の人が書いてくれてるみたいにIBOutlet/IBActionの接続が上手くできてない(リネームしたりするとよくある)
あとどうでもいいけどPlayとStopのボタンタイトルの設定が逆
0965デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/18(土) 16:18:43.63ID:wVqfoazIaASCII文字列に、非ASCIIキャラをinsertした後の文字列はどうなるの?
var asciiString: Sting = ...
asciiString.insert("あ", at: s.startIndex)
0966デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
2017/02/18(土) 17:48:34.42ID:oLH7rESg00967デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/18(土) 18:03:13.63ID:wVqfoazIaasciiString.remove(at: s.startIndex)
これ毎回チェックしてるとしたら結構なオーバーヘッドな気が...
0968デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
2017/02/18(土) 20:08:14.30ID:ss3TDen/00969デフォルトの名無しさん (ササクッテロラ Sp9f-ykbm)
2017/02/18(土) 20:49:34.59ID:c9HMTA6gp一旦UTF16にしたらもう、UTF8に戻さないって事?
0970デフォルトの名無しさん (ワッチョイ 0fba-PET2)
2017/02/18(土) 21:11:09.55ID:3KSwEFyS00971デフォルトの名無しさん (ワッチョイ df93-yXFx)
2017/02/18(土) 21:11:54.83ID:CZJbBrsK0実行効率を良くするために
元がASCIIならASCIIのまま、元がNSStringならNSStringのまま扱うわけであって
一度ネイティヴに変換したものを元の形式に戻す意味はないだろ?
で、そこらへんの細かいことはコンパイラとライブラリーに任せて
アプリケーションプログラマーには自分のロジック書くのに集中して欲しいから
内部表現を想定するなって事になってるんだと思うよ
0972デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/18(土) 21:50:54.42ID:HBZdFR5pa許可されてるインフェースを通してしかアクセスできないんだから
想定しようにもできない気がするけど
0973デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
2017/02/18(土) 22:29:50.36ID:ss3TDen/0var 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みたいな型も使えるようにするって言ってるんだと思う
まぁ現時点ではほとんどまったく意味ないね
0974デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
2017/02/18(土) 22:31:20.54ID:oLH7rESg0それは順序が逆で
想定すべきでないという設計思想がまずあって、その結果今のインターフェイスがある
ただし次は特に高速が求められるケースでは特定の内部表現を前提に出来るようになる予定
0975デフォルトの名無しさん (スフッ Sd7f-yXFx)
2017/02/18(土) 23:03:24.02ID:KQ+hCWpkda...zでアルファベット全部が表現できる(無意識にascii系とかを想定、少なくともebsdicではない)
"あい"文字列の"い"を取り出すには4文字目から取り出さなきゃ(無意識にutf8を想定)
アルファベットで100万文字だから1MByteでお釣りがくるぜ(無意識に8bit系を想定)
文字コード値22FFFFを代入する(無意識にUCS4を想定)
てな感じ
どちらかと言うと今までは文字コードの想定を置かないとブログラムを書けない言語が主流だったから
swiftの文字列に対するインターフェースはまどろこしく感じちゃうよね
0976デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/18(土) 23:26:41.42ID:HBZdFR5pa何かの勘違いでそういう想定(今時EBSDICを想定する奴はいないと思うけど)したとしても、
Sting内部に直接アクセスできないんだから、間違えようがない気がするんだけど、
UnsafePointer系の操作で出来ちゃったりするのかな
UnicodeScalarとか名前から明らかなとこにJISコード入れちゃうとかはそれ以前の問題だし
0977デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/18(土) 23:31:01.65ID:HBZdFR5pafor ch in 0..<26 {
let s = String(format: "%c", ch+65)
print(s)
}
0978デフォルトの名無しさん (スフッ Sd7f-yXFx)
2017/02/18(土) 23:42:15.42ID:KQ+hCWpkdうん、少し前の人が書いてくれているように
内部表現とインターフェースを出来るだけ切り離すように設計されてるからね
実際には
アルファベット10文字が
10バイト+アルファになるか
20バイト+アルファになるか
40バイト+アルファになるか
を考えちゃいけない
ってくらいかな?
0979デフォルトの名無しさん (ワッチョイ eb46-MFap)
2017/02/19(日) 00:13:39.56ID:vGTXfdrY00980デフォルトの名無しさん (ササクッテロロ Sp9f-yXFx)
2017/02/19(日) 10:00:43.72ID:x1LhCX3Ip【�A10】【�B100】【�C1000】
はじめに�@で数字を設定
�A〜�Cのボタンを押すとその数字だけ�@の数字がマイナスされていく
というアプリを作りたいのですが難しいですか?
今まではおみくじアプリや姓名診断アプリしか作ったことがないです
0981デフォルトの名無しさん (スフッ Sd7f-yXFx)
2017/02/19(日) 10:34:46.00ID:h/cJOvo9dお前さんの持ってるスキルによる
手慣れた人なら10分でとりあえず動くところまでは作れる
0982デフォルトの名無しさん (ワッチョイ eb46-MFap)
2017/02/19(日) 11:10:03.05ID:vGTXfdrY00983デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/19(日) 11:23:30.70ID:w9YkVXBS0Visual Studio + C#の方がDesktopアプリは作りやすいよ。
FormにGUI部品を貼り付けただけで、イベントハンドラーがコードに現れる。
Xcode + Swiftも良いと思うよ!
0984デフォルトの名無しさん (ワッチョイ eb46-MFap)
2017/02/19(日) 11:29:31.80ID:vGTXfdrY0うん、知ってる
でも最強なんだよ
なんと言ってもApple様御用達の肝入りの言語なんだから
他者の追随を許さない最もエレガントでモダンな言語であることに揺るぎはないのです
0985デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/19(日) 21:30:02.48ID:nebqvmdd0見つけられないのは俺だけ?
勘で、.utf8ってメンバを想定して、動いてるけど、他にどんなメンバがあるのか気になる。
0986デフォルトの名無しさん (ワッチョイ df93-yXFx)
2017/02/19(日) 22:01:23.21ID:xeFgM7Gv0Swift側じゃなくってObjectiv-C側を読むんだよ
あのAPIリファレンスはときどきそう言うのがある
0987デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/19(日) 22:22:31.19ID:nebqvmdd0ん?どう言う事?
String構造体ってのはSwiftにしかないので、Obj-C側ってことは、
NSStringのAPI Referenceを見ろって事?
typedef NSUInteger NSStringEncoding;
ってのがあって、NSUTF8StringEncoding = 4らしいんだけど、
これは、String.Encoding構造体とは違うよねぇ。
0988デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/19(日) 22:22:46.88ID:y9mVagihaソースみればいいじゃん
Sting.Encodingを右クリックして、「Jump to Definition」を選べばいい
0989デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/19(日) 22:25:33.01ID:y9mVagihaString.Encoding.utf8の部分を右クリックすればいける
それか、Option押しながらクリックして、String.Encodingのヘルプ見てもいいけど
0990デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/19(日) 22:28:05.19ID:nebqvmdd0out = String(data:data, encoding: .ascii)!
out = String(data:data, encoding: .shiftJIS)!
確かに、NSStringEncodingのAPI Referenceが参考にはなる。
あんがと!
0991デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/19(日) 22:30:35.66ID:nebqvmdd0String.Encodingどうすんだ?
0992デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/19(日) 22:34:36.24ID:nebqvmdd0なんと、NSStringEncodingをAPI Referenceで調べて、
こいつはNSIntegerなので、エンコードの番号をrawValueで指定
するっていう、大変な事をする事でもOKだ。
0993デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/19(日) 23:00:02.23ID:nebqvmdd0XcodeのAPI ReferenceでStringを引いた結果が違う事に気がついた。
特にNested Typeの所が違う。
Xcodeは8.2, Dashは3.4.2だけど、Xcodeは最新版では無いなぁ。
0994デフォルトの名無しさん (ワッチョイ 0f7b-TuOZ)
2017/02/20(月) 00:50:56.72ID:mClGTBrk0他のOS, Java などでは、2文字と数える
0995デフォルトの名無しさん (ワッチョイ 0fba-PET2)
2017/02/20(月) 00:53:22.30ID:fz3RD/iA00996デフォルトの名無しさん (スッップ Sd7f-yXFx)
2017/02/20(月) 09:25:40.12ID:jVgNOv8ddLinuxのAPIの話ならwchar_tは32bitだから、
これを使ってるんなら
サロゲートペアという概念は無いし、
Linuxでのwchar_tの1文字は基本的に4バイト
しかし、wchar_tが固定長文字と言う前提が、既に時代遅れになっちゃったなぁ
0997デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
2017/02/20(月) 10:01:05.56ID:ChbPWtRt0http://echo.2ch.net/test/read.cgi/tech/1487552413/
0998デフォルトの名無しさん (ワッチョイ bbbd-ea4t)
2017/02/20(月) 12:28:23.27ID:mI2RJMjC0そんなに盛り上がる話なのかよwww
0999デフォルトの名無しさん (ササクッテロラ Sp9f-BRgT)
2017/02/20(月) 12:50:35.35ID:fp9BsZKPpじゃあお前が何か盛り上がるネタを投下しろよ
10001000ゲト (ワントンキン MM7f-WBM5)
2017/02/20(月) 13:02:42.52ID:sccSrbIhM10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 125日 1時間 27分 58秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。