Swift part10at TECH
Swift part10 - 暇つぶし2ch213:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/18 12:32:40.53 vKa31hq6d.net
>>208
さんきゅ
あとで試してみる
しかし、やっぱりperl並みのお手軽さが欲しいところ

214:デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
17/03/18 12:51:59.51 15tZ92u+p.net
少し前のDev MLで正規表現を言語仕様に組み込む話題があったような
あって困るものじゃないから入って欲しいね

215:デフォルトの名無しさん (ワッチョイ bfc9-QFag)
17/03/18 12:54:59.80 XXqg+DqY0.net
議論はあったけど4には入らんと思う
> Addressing Regexps in Swift proper is out of scope for Swift 4, because
> there's simply no time to design and add the necessary language features.

216:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/18 14:54:04.70 CoM5VADKa.net
Obj-Cもそうだけど、Swiftで正規表現使おうとするたびに、使い方をググってるわ
Perlだとすぐに書けるんだけどな

217:デフォルトの名無しさん (ワッチョイ bf3c-5NuA)
17/03/18 15:26:50.32 eyWXYpAT0.net
Swift 4が最終ステージに(白目)
URLリンク(www.infoq.com)

218:デフォルトの名無しさん (ワッチョイ bfc9-QFag)
17/03/18 15:51:30.64 XXqg+DqY0.net
日本語版InfoQはいつもネタが一ヶ月遅い

219:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/18 16:03:29.07 h03j8lZL0.net
>>213
ABIって見るたびに、なんの略だったっけ?となる。
BI = Binary Interfaceだよね?
What does “A” stands for?

220:デフォルトの名無しさん (ワッチョイ 3f93-CJUg)
17/03/18 16:33:29.93 L7+Dd5xH0.net
>>215
"A" for Application

221:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/18 17:10:49.00 61cBFpsD0.net
APIの派生
ソースレベル互換→バイナリレベル互換

222:デフォルトの名無しさん (ワッチョイ 3f93-CJUg)
17/03/18 18:08:39.34 L7+Dd5xH0.net
なかなかAPIとABIとシステムコールとライブラリとフレームワークという言葉ををきちんと分かった上で使い分けるのが難しいんだよね
うちの若手とか
>>213の文脈だと
以前からあるライブラリとかと再コンパイルしなくてもリンク出来る
ってのがABIレベルでの互換性だろうね

223:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/18 18:39:09.49 61cBFpsD0.net
システムコールは置いといていいでしょ
普通の開発者は直接的には使わないんだし

224:デフォルトの名無しさん (ササクッテロリ Sp97-v7qi)
17/03/18 19:27:50.95 15tZ92u+p.net
これと言ってることが微妙に違うのはInfoQの情報が古いのか、こっちの更新が遅れているのか
URLリンク(github.com)
はよABI安定させてlibSwift.soをiOS, macOSのシステムライブラリに保存してくれよなぁ
Swift 3でABI安定させるって理想だった頃はその構想だったのかもしれんが、ABI安定時期が不透明な今はもう諦めてるのかもしれん

225:デフォルトの名無しさん (ワッチョイ 3f93-CJUg)
17/03/18 20:06:24.89 L7+Dd5xH0.net
>>219
いやさ、printf()で済むところをwrite()とか、put()とか使いたがる人が居たりするんだよ
ライブラリ関数とシステムコールの違いが分かってないのよねん
説教したくなるのをグッとこらえて、システムコール使うと遅くなるしメンテナンスが大変になるんだよと言ってもなかなか納得してくれない

226:デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
17/03/18 20:38:16.85 GFFJDG7E0.net
Objective-Cでおk
以上。
おつでした。

227:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/18 20:39:58.56 61cBFpsD0.net
>>221
printf()もシステムコール使ってるよ
write() put()はシステムコールでなくラッパー関数でライブラリの一部
遅いのはシステムコールやチェック処理の回数差でバッファリングに起因する

228:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/18 22:12:10.15 h03j8lZL0.net
>>221
システムコールって遅いの?逆なんじゃない?
つまり、ライブラリ関数より早い。
だって、ライブラリ関数はシステムコールのラッパー関数なんでしょ?
俺、arc4random_uniformとか、atofとか使いまくってるんですけど。

229:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/18 22:21:36.55 h03j8lZL0.net
>>223
write()ってのは、何を指しているのでしょう?
ライブラリの一部というのだから、
FoundationライブラリString#write(to:)の事でしょうか?
なら、printfよりも遅いですよね。
put()はなんの事でしょうか?

230:デフォルトの名無しさん (ワッチョイ 133c-tpgq)
17/03/18 23:27:27.95 61cBFpsD0.net
>>224
システムコールは特権レベル変更に伴うコンテキストスイッチなどのオーバーヘッドのため
ユーザーモードで完結するものより遅い
atofはシステムコールしない、arc4random_uniformは再シードのときだけシステムコールするようだ
>>225
>>215-219はSwiftやiOSに限らない一般的な話, >>221,223はC言語標準ライブラリまたはPOSIX
putはputsやfputcなど
通常のプログラムからラッパー関数はcdeclなどで呼ぶ
ラッパー関数はシステムコール番号などをレジスタにセットして
int 80hやsyscallなどのCPU命令を実行する

231:デフォルトの名無しさん (ワッチョイ 133c-tpgq)
17/03/18 23:30:26.08 61cBFpsD0.net
長々書いたけど swiftdoc.org やAppleの開発ドキュメントを
見てたら多分支障無いから気にしなくていい

232:デフォルトの名無しさん (ワッチョイ 035b-8e1h)
17/03/19 00:02:51.00 X9SioAAy0.net
>>226
なるホドォ

233:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/19 00:11:01.40 WMiUvz/ea.net
まさかこのスレにシステムコールのオーバーヘッドを気にするようなスピード狂がいたとは

234:デフォルトの名無しさん (ワッチョイ cf7b-vzQh)
17/03/19 02:31:51.49 MM3vmS8Q0.net
1,000バイトの読み書きをするのに、1バイトずつ、
syscall * 1,000回すると遅いから、
ライブラリ内でバッファを確保(バッファリング)して、
1,000バイト貯まったタイミングで、syscallを1回だけ呼ぶと、速い

235:デフォルトの名無しさん (ワッチョイ a33a-MtDv)
17/03/19 08:50:33.86 BHsM6TZ60.net
Dispatchの良いドキュメントってありますか?英語でもいいです。mpiのparallel forと同じようなことがしたいんですが、よくわからないので勉強したいので

236:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/19 09:06:36.45 X9SioAAy0.net
>>231
Apple Gudes and Sample Codeで探せば!
Concurrency Programming Guide
とかヒットするけど。
Dispatch Queues, Dispatch SourceのSectionを参照。

237:デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
17/03/19 09:46:45.92 QbTcqaOM0.net
システムコールのオーバーヘッドを気にするような人がSwiftのようなモダンな高級言語を
使うとは胸熱だな
速度をちゃんとコントロールしたいならO


238:bjective-Cじゃないと無理だろ...



239:デフォルトの名無しさん (ササクッテロリ Sp97-v7qi)
17/03/19 09:55:06.98 yi8Y0/pHp.net
ObjCもlibobjc.soとかのランタイムを食わせないと動かないからダメだろ
Swiftよりはランタイム総容量は小さいけどObjCにもランタイム/ラッパー関数は必要なんだぜ?
システムコール呼び出すC関数呼ぶだけならSwiftでもできるから同じ土俵

240:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/19 10:08:01.66 X9SioAAy0.net
system callの呼び出し履歴を表示する、dtrussってコマンド見つけた。
trussのdetails版らしいけど、trussってなんの略だ?

241:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/19 10:10:39.12 X9SioAAy0.net
trussはmanのsection 1にあるはずなんだけど、documentが、ない。
なぜだ?

242:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/19 10:12:54.40 X9SioAAy0.net
truss = trace user signal and system callかな?

243:デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
17/03/19 10:35:19.35 QbTcqaOM0.net
>>234
>システムコール呼び出すC関数呼ぶだけ
C言語に頼るwithout CなSwift

244:デフォルトの名無しさん (ワッチョイ 532b-v7qi)
17/03/19 16:43:04.63 BRUWii050.net
文法はwithout Cだけど、機能はwith CのSwiftすごい!!
Modern Objective-Cとかいう微妙に時代遅れなモダン言語(笑)とは違うな

245:デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
17/03/19 17:04:16.85 QbTcqaOM0.net
Swift:「文法はwithout Cだけど、機能はwith CのSwiftすごい!!」
C:「それじゃあ結局のところSwiftは文法的な見た目をモダン()にしただけの言語ってことになっちまうじゃねぇか...」
Objective-C:「」

246:デフォルトの名無しさん (JP 0H37-oEzJ)
17/03/19 17:13:15.07 zGHcaEctH.net
juliaも忘れんとって

247:デフォルトの名無しさん (ワッチョイ bf3c-5NuA)
17/03/20 10:21:19.90 QillsqV80.net
つまりインラインでC言語が書けるObjective-Cが最強ってことだな。
SwiftもC言語埋め込めるようにすれば最強になれるで。

248:デフォルトの名無しさん (ワッチョイ bfd4-pP+o)
17/03/20 11:09:21.86 KXLYvEOG0.net
じゃあ、swiftにObjective-Cを埋め込めれば、真の最強じゃね?

249:デフォルトの名無しさん (ワッチョイ 53ba-nPNM)
17/03/20 11:21:56.39 XcCZvFx20.net
至高の言語Swiftにひざまづけ愚民ども

250:デフォルトの名無しさん (スップ Sddf-gIrG)
17/03/20 11:38:00.54 9CFcUwN1d.net
without Cにする必要性について

251:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/20 11:42:15.65 0inF6e9Oa.net
ソースが汚くなるから
王室に乞食を招き入れるわけにはいかんだろ

252:デフォルトの名無しさん (ワッチョイ 532b-v7qi)
17/03/20 11:42:37.51 IesYv4al0.net
>>242
文法はwithout Cで機能はwith CのSwiftの最強
何が不足なのか分からんぞ?
ObjCに比べてランタイム容量がアホほど大きいデメリットは分かる

253:デフォルトの名無しさん (スップ Sddf-gIrG)
17/03/20 11:42:54.31 9CFcUwN1d.net
>>242
まあObjective-CはCのスーパーセットだからな
Cそのものを含んでると言っていい
CでできることはObjective-Cでも100%できる

254:デフォルトの名無しさん (スッップ Sddf-8YZg)
17/03/20 13:24:38.46 es7jdWbid.net
俺はObjective-Cで、かつ、省略しない方が好き。
Swiftは、なんか、いろいろ中途半端。
あと、省略可能なのは良いけれど、省略した時にどうなるかを、考えなさすぎ。
省略時の動作は、最終的にコンパイラの実装依存になる。
よってコンパイラが変われば、全く期待した動作にならない場合だってあるんだよ。

255:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/20 13:32:26.07 LSRu7fHya.net
Swiftに、省略時の曖昧な動作なんてあったっけ?

256:デフォルトの名無しさん (エムゾネ FFdf-CJUg)
17/03/20 13:39:46.35 MLqjE/IfF.net
>>242
Swiftでも直接Cの関数呼べるけどなんか問題ある?
このスレでも少し前にdup2()呼ぶサンプル書いてる人いたよ
個人的には
"C":{}とかで囲んで明示する必要がいるくらいには敷居を上げておいて欲しかった
今だと普通に呼べすぎて、swiftの関数なのかCの関数なのか見分けがつかない

257:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/20 14:21:57.88 EvEkzDYt0.net
>>250
型推論の事言ってんじゃないか?
別に省略してる訳じゃないのにね。
あるいは、syntax sugarの事かも。
Array<Int>を[Int]とか書いたり。

258:デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
17/03/20 14:48:23.91 G0HPo1ICp.net
見分けがつかないからなんだってんだよ

259:デフォルトの名無しさん (ワッチョイ 23ce-gIrG)
17/03/20 15:03:51.36 OmtBFJ4n0.net
Swiftってザ・意識高い系って感じの言語だな
C言語の関数呼べるようにする必要ないくらいじゃないと言語とは言えんし

260:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/20 16:30:53.49 E6+3UOyx0.net
Bridging Headerもmodulemapも言語の機能じゃ無いよ

261:デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
17/03/20 17:05:35.61 OmtBFJ4n0.net
without Cを謳っておいてCの関数を呼び出す
仕組みを用意してるのって滑稽だねってだけだよ

262:デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
17/03/20 17:06:20.49 fEdZO0mtp.net
>>254
比較対象がVM言語やインタプリタ言語かよ
意識低いなw

263:デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
17/03/20 17:13:00.01 G0HPo1ICp.net
without C を謳うのは建前
でもcが使えちゃうのは本音
日本人ならわかるだろ?

264:デフォルトの名無しさん (ワッチョイ ef78-CJUg)
17/03/20 17:31:37.32 qt6rA4Ca0.net
>>254
Javaだけど呼んだ?

265:デフォルトの名無しさん (スップ Sddf-gIrG)
17/03/20 17:36:09.37 5DkpfNMbd.net
gccがgasコードを吐くように、swiftもObjCコードを吐けばいいんじゃね?w

266:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/20 17:43:37.75 EvEkzDYt0.net
>>260
それは難しいだろう。
associatedtype付きのprotocolとかObj-Cに移植できるの?

267:デフォルトの名無しさん (ワッチョイ 532b-v7qi)
17/03/21 07:36:52.81 9HZnXlk90.net
gccがgasコードを吐くように、clang/swiftcがLLVM IRコードを吐く件
>>251
Swiftコード中に書くC, ObjC関数は、.swiftヘッダファイルに同名で再定義されたswift関数だから見分けつかない
Swiftフレームワークライブラリの中に入ってる.swiftヘッダ見るとC,ObjC,Swiftの全ての関数が同列に並んでてこんなことしてるのかよwwwって笑う

268:デフォルトの名無しさん (ワッチョイ 3f74-CJUg)
17/03/21 07:41:09.49 JY9T0YVB0.net
JavaのJNIだとCを呼び出すための敷居が高すぎるんだよな
でもswiftだと敷居が低すぎる
なんてワガママな俺

269:デフォルトの名無しさん (スップ Sddf-gIrG)
17/03/21 07:54:24.70 nRmSmnIrd.net
C言語の関数呼び出さないとやりたいこと出来ないわけ?

270:デフォルトの名無しさん (ワッチョイ 532b-v7qi)
17/03/21 08:21:33.84 9HZnXlk90.net
やりたいことを出来ないんじゃなくて、>>238のように出来ることを煽りたいんだと思う
それが煽りになってるのか分からんけど
最初は(システムコールを扱う時に)SwiftだとObjCほど性能でないwwwって煽ろうと思ったら同レベルで引くに引けなくなった感じがする
単純にSwiftランタイムのばかでかさに依る性能劣化を煽ってればその通りなのにね
ランタイムのロードとか関数マップテーブルからのAPI検索とか、システムコールだと差分ないけど一般利用時に性能悪いのは必然だもの

271:デフォルトの名無しさん (エムゾネ FFdf-gIrG)
17/03/21 09:14:33.95 XLp7uPXRF.net
Swiftでないとダメな5つの理由
とか誰か書いてよ

272:デフォルトの名無しさん (スップ Sddf-nPNM)
17/03/21 09:21:56.02 hTMAmD++d.net
1.学習コスト
2.生産性
3.スタイリッシュ性
4.流行
5.信仰心

273:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/21 10:36:30.52 H55j2XV7d.net
>>264
さあ?
あなたの作るプログラムで必要であれば必要だし
必要でないなら必要ない
うちの場合OpenCV使うのにC++ブリッジ使ってる
あと、無限ループで延々九九と答え吐き出すコンソールアプリ作っておいて
Ctrl+Cを押されたら「知るかボケ!忙しいんじゃ」と吐き出して、そのまま無限ループを続けるプログラムを作りたかったら
俺はSwiftだけで書く方法を知らないのでCの関数(と言うよりはPOSIX API)を呼び出す

どうして全部Swiftでできるようにしないのか?と言う問いに対しては
Javaプロジェクトが一つの答えだと思う
OSのAPI層までを言語と標準ライブラリに取り込もうとする意欲的な試みは
20年以上かけてある程度成功したが、柔軟性を失わせる副作用と言語の肥大化をもたらした
そしてJavaからCを呼び出す仕組みであるJNIは未だに必要とされている
全部をプログラミング言語に取り込むのではなく既存の仕組みとうまく連携するのがバランスの良いとの判断なんじゃないかな?

274:デフォルトの名無しさん (スップ Sddf-nPNM)
17/03/21 10:46:19.71 MDnLMEwZd.net
swiftは初めからjavaのようなマルチプラットフォームを目指しているわけでもあるまい

275:デフォルトの名無しさん (スプッッ Sddf-pP+o)
17/03/21 11:08:08.11 CAHXK6Wdd.net
Floatを引数にとる関数で、その引数の場所で(1+n)とかやると、
Binary operator '+' cannot be applied to two 'Int' operands
ってエラーが出て嵌った。
URLリンク(stackoverflow.com)
エラーメッセージが不親切過ぎる。

276:デフォルトの名無しさん (スプッッ Sddf-pP+o)
17/03/21 11:11:47.89 CAHXK6Wdd.net
上のリンクでは
Binary operator '*' cannot be applied to two 'Int' operands. Expecting two 'CGFloat' operands.
ってエラーメッセージの方が良いと書いてるけど
Binary operator '* -> CGFloat' cannot be applied to two 'Int' operands. Expecting two 'CGFloat' operands.
だと、まだ分かりやすかったと思う。

277:デフォルトの名無しさん (ブーイモ MM77-nFTW)
17/03/21 11:20:38.39 g+RWoDDLM.net
>>246
王とはCのことか

278:デフォルトの名無しさん (スッップ Sddf-8YZg)
17/03/21 12:12:24.85 PXKTLJIMd.net
>>266
「Swiftでないとダメな5つの理由とか」の「とか」は、「Swiftでないとダメな5つの理由」以外の何?

279:デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
17/03/21 12:13:48.48 1Za/GAk+p.net
Objective-Cこそ王族の言語(信仰心
>>266
ダメな理由なら3つほど
1. 小さなランタイム(笑)
2. 頻繁に破壊される言語仕様
3. 不完全なエコシステム(ビルドツール)
これらはメリット/デメリットが双方あるものじゃなくデメリットしかないから煽ってもおk
この辺はswiftユーザはもう諦観して苦笑しながら使ってるデメリットだけども

280:デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
17/03/21 12:16:06.38 1Za/GAk+p.net
>>273
「swiftがダメな3つの理由」とか

281:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/21 12:19:09.63 H55j2XV7d.net
>>273
お、久しぶりに出てきた
全部の「とか」に反応するわけじゃなくて
選択的に反応してるのか?
しかしその選択基準がまだよく分からないな

282:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/21 12:37:34.87 H55j2XV7d.net
>>269
うん、
マルチプラットホーム対応を言語レベルでは行わない選択をした=実行環境ネイティヴ(多くの場合はCで提供されている)とのインターフェースが必要
だと思ってる
without CなのにCが必要wwwって煽ってる人は
言語仕様とネイティヴインターフェースを混同しているおバカな自分をアピールしたいんしゃないかな?

283:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/21 12:39:40.14 huV0U58I0.net
>>269
Multi-platform目指してると思うよ!
Linux, macOSとで動くし。
Windowsでもそのうち動く様になる。bash, vimが動く様に。

284:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/21 12:41:05.23 huV0U58I0.net
>>270
A + BでそのError Occuredの場合、
大抵は、
Int(A) + B
ってするとOK

285:デフォルトの名無しさん (スップ Sddf-nPNM)
17/03/21 12:45:05.87 MDnLMEwZd.net
>>278
動く、使える=swiftがswiftプラットフォームとしてマルチを目指しているではない

286:デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
17/03/21 12:52:34.12 1Za/GAk+p.net
>>278
cygwinポーティングはとっくに公式にマージされただルルォ
Androidでも動くしコミュニティの愛すべき馬鹿どもは頑張ってる
>>279
それ、Int(A)がキャストじゃなくコンストラクタ呼び出しで生理的に気分悪いよな
どこまで最適化走るか不明瞭だけど普通に考えて性能悪化を手助けしてる

287:デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
17/03/21 12:59:01.94 I3nNj3Lbp.net
オプショナル型ちょ~便利
型類推もちょ~便利
文末にセミコロン不要なんてサイコー
letとvarの使い分けがありがたすぎ
switch文が強力すぎて鼻血でたー
enum構文がおいしすぎてよだれ出るぅ
Playgroundが便利すぎぃ
他にもまだまだたくさんよりどりみどりぃ

288:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/21 13:52:46.38 huV0U58I0.net
>>281
キャストとは、Superclassを同じくするインスタンスどおしの型変換。
IntとCGFloat間でキャストできる方が気分悪い。

289:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/21 14:19:23.23 H55j2XV7d.net
>>278
あ、ごめん、スレチかと思って説明しなかったんだけど、

Javaはバイナリレベルでのマルチプラットホームを旗印にしてたんだ
"Write Once Run Anywhere"をスローガンにして
つまり一度コンパイルして作成したアプリとかは、macでも、winでも、unixでも、携帯でも、再コンパイルすら必要なく同じ動作するよ!って
そのためにAPIやABIなど今までOSの役割だったところをJavaという仕組みの中に取り込んでいった
もちろん、そんなにうまくいくはずもなく"Write Once Debug Everywhere"と揶揄されることになった

それに対して伝統的なUnix系の考え方は、再コンパイルして動けばオッケー
動作が違う?OSとかの環境が違うんだから当然だよね、ソースでifdefしよう!
って感じのマルチプラットホーム
これですら、PosixやSUSとかの活動によるAPIや実行環境レベルでの統一化や
gnu automakeなどによる実行環境とビルド環境の調査とそれに対応したビルド
などでかろうじて維持されているレベル

C言語とかで書いたプログラムがmacでも、winでも、Linuxでも動くというのは
言語がマルチプラットホーム対応しているわけではなく、後者の意味でいろんなプラットホームで動くようにプログラムやビルドシステムを書いているから
Swiftも今の所後者に属してると思うよ

290:デフォルトの名無しさん (ワッチョイ 032b-v7qi)
17/03/21 14:49:45.32 LQyko2ZP0.net
>>283
お前それプリミティブ型のintとfloatでも同じ事言えんの?
基本的な数値型をプリミティブ型として一般的に提供しないSwift
プリミティブ型ではなく構造体型で全数値型を提供する意義は分かるが性能劣化してるんだよなぁ

291:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/21 14:49:46.32 huV0U58I0.net
>>284
THX
Single UNIX Specificationってのがあるのね。

292:デフォルトの名無しさん (ブーイモ MMdf-S3kY)
17/03/21 15:22:22.74 vtLrbY1LM.net
なんでここCのシンタックスを外したことをwithout Cって言ってるのに
without CつったらCの機能が呼べないようにならないとおかしいだろ?
とかとんちんかんなこと言う奴しかいないのん?
ラトナーが草葉の陰から泣いてるぞ

293:デフォルトの名無しさん (ササクッテロラ Sp97-v7qi)
17/03/21 15:40:06.05 DXgiF4dPp.net
日本語でおk

294:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/21 15:50:06.39 huV0U58I0.net
>>285
Swiftの高速演算に対する思想。高速演算必要ならClangで書いてね。Frameworkって仕組みを用意するから、Clangのソースをemmbed inしてね。って事なのだ。例:RxSwift/RxCocoa/Runtime
高速演算したけりゃ、その部分をClangで書いてSwiftから呼べば良い。

295:デフォルトの名無しさん (ワッチョイ bff3-QFag)
17/03/21 16:06:44.92 p7k0dZ7/0.net
>>285
@_transparent付きで中でビルトインの変換呼んでるだけだからCやC++と比べても性能劣化なんて皆無だと思う
実際にIR見ても別に無駄にジャンプしたりしてない
素でsitofpとかしてるだけ
ナローイング変換はprecondition入るけどそれも最適化されるし

296:デフォルトの名無しさん (スップ Sddf-nPNM)
17/03/21 16:27:53.04 MDnLMEwZd.net
Clangっていうとコンパイラしか思い浮かばないんだが

297:デフォルトの名無しさん (ササクッテロリ Sp97-v7qi)
17/03/21 17:51:22.44 pxhdVPhBp.net
> Frameworkって仕組みを用意するから、Clangのソースをemmbed inしてね。って事なのだ。
Swift Package Managerがクソな完成度でSwift Framework LibraryにC言語のソースはembed inできないんだけど...
まぁそもそもアレはFramework Libraryを生成するコマンドとしても成り立ってないから論外なのかもしれんが
Swift公式として真っ当な技法を提供してなくて、バッドノウハウとしてRxSwiftやRxCocoaがやってることをやれってことなんだろうな(ウボァ

298:デフォルトの名無しさん (スッップ Sddf-8YZg)
17/03/21 18:48:58.62 PXKTLJIMd.net
>>284
「一度コンパイルして作成したアプリとか」の「とか」は、「一度コンパイルして作成したアプリ」以外の何?
> macでも、winでも、unixでも、携帯でも
macはハードウェア
win、unixは、オペレーティングシステム
携帯は動詞
「C言語とか」の「とか」は、「C言語」以外の何?

299:デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
17/03/21 19:25:34.11 I3nNj3Lbp.net
一度コンパイルして作成したアプリとか
一度コンパイルして作成したアプレットとか
一度コンパイルして作成したサーブレットとか
C言語とか
C++とか
Pascalとか

300:デフォルトの名無しさん (ワッチョイ 133c-QFag)
17/03/21 19:42:18.10 jxZBoDQT0.net
>>293
NG: macはハードウェア
OK: OSはmacになり、ハードウェアはMacのまま
揚げ足取るのって楽しいの?
アスペなの?

301:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/21 19:59:01.53 H55j2XV7d.net
>>293
この場合のとかの用法は明確に定義しないことを明示するための、、、、、、
とかではなくて、
説明しよう!(富山敬風)
ターゲットが特定のキーワードに高確率で定型のレスをつけることを利用して
ターゲットのレスを意図的に引き出そうとする
ドメイン特化キーワード、いわゆる釣りワードである
(↑これが言いたかっただけなのだ)
釣りとわかって付き合ってくれてありがとう

302:デフォルトの名無しさん (ブーイモ MMdf-nFTW)
17/03/21 20:48:23.31 2GTRnHWPM.net
>>283
え、そうなの?
swift界ではそういう定義なん?

303:デフォルトの名無しさん (スップ Sddf-nPNM)
17/03/21 20:59:06.98 MDnLMEwZd.net
>>292
ゲロ吐く

304:デフォルトの名無しさん (ワッチョイ 0354-QFag)
17/03/21 21:05:21.27 /qkJhfYu0.net
>>295
アスペ好き

305:デフォルトの名無しさん (ワッチョイ a392-v7qi)
17/03/21 22:39:55.95 O0GOXggs0.net
アスペとかと遊ぶためのキーワードに爆釣(釣り糸タラー
>>290
結構冗長処理の差分があるけど、どんなオプションで吐いた?
% swiftc -S -O test.swift
--
import Foundation
func main() -> Int {
let a: CGFloat = 1
let b = Int(a)
return b
}
% test -S -O test.m
--
int main() {
float a = 1;
int b = a;
return b;
}

306:デフォルトの名無しさん (ワッチョイ a392-v7qi)
17/03/21 22:40:48.24 O0GOXggs0.net
スマン、後者のコマンド間違えた
% clang -S -O test.m
で読み替えて

307:デフォルトの名無しさん (ワッチョイ bff3-QFag)
17/03/22 01:02:49.55 FLAiJ+iN0.net
>>300
当たり前だけどそのコードじゃ、どっちも


308:意味のないaの行は消えて直接整数の1を置くだけのコードに最適化された [swift] func foo(f: Float) -> Int { let i = Int(f) return i } [c] int foo(float f) { int i = f return i } これで見ればfloat→intの変換はどっちもcvttss2siの1ステップになった Swiftの方は-Oだとcvttss2siの前にprecondition由来のコードが残るけど-Ouncheckedならそれも消えて完全にCと同じ



309:デフォルトの名無しさん (ワッチョイ 23bc-JN/B)
17/03/22 01:09:43.24 +9rAaXcc0.net
var i = Inf(f)
じゃないと
int i = f;
と等価じゃなくね?
んでもってCではセミコロンいるけどね

310:デフォルトの名無しさん (ワッチョイ bff3-QFag)
17/03/22 01:15:25.70 FLAiJ+iN0.net
>>303
たしカニ
まぁ変わらんけど

311:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/22 11:24:01.24 kq8u5G9J0.net
数値の型変換がイニシャライザなのは良いけど
情報欠落するケースかどうかが変換箇所のコードで分からないのは好きじゃない
Int32→Int64のような拡張でも暗黙変換しない方針を選んだのなら
逆に縮小をラベル付きにしてコードから判別出来るようにして欲しかった
  Int32.init(_: Int16)
  Int32.init(narrow: Int64) // init(_: Int64)
  Int32.init(truncatingBitPattern: Int64)
例えばC#では拡張は暗黙変換、縮小は明示キャスト必須になっている

312:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/22 12:38:51.99 dwmeJil9d.net
そうだよな、CでもC++でもSwiftでも
自信を持ってキャストできた試しがない
何が起こるキャストなのか詳細に分かると便利だね

313:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/22 12:43:22.27 dwmeJil9d.net
>>282
こん中だとけっこう感動したのは
>switch文が強力すぎて鼻血でたー
これだな
複雑なif文の入れ子がかなりシンプルにできる

日常的に一番お世話になってるのはオプショナル型
ヌルポ踏むことが無くなったかな

314:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/22 13:02:23.51 GcLM8SyP0.net
>>305
おれの得意なXXXと、どうして違うんだぁぁぁぁ。
よくあるよね。

315:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/22 14:23:57.53 kq8u5G9J0.net
>>308
得意かどうかや違うかどうかは関係無いよ
考慮された上での仕様かどうかという話
数値型の暗黙変換を無くしたことは前進だと見ている
しかしその結果、拡張変換の構文が縮小変換に追いついてしまい
非対称性による利点が失われてしまった

316:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/22 15:23:52.69 dwmeJil9d.net
>>308
まさにこれ
Perl風の正規表現サポート構文を全言語で採用しないなんて信じられない!
文字列処理なんてプログラミングの基本中の基本でしょ!
一文字ずつの処理をプログラマが書くなんてあり得ない!!

待ってるぜSwift5

317:デフォルトの名無しさん (ササクッテロリ Spd3-Lcoi)
17/03/23 09:17:23.40 9ddE+onEp.net
>>307
1.x初期にif letを子入れしてた時はシネと思ってたけど今のif, switchは便利よな
パクリ元と思われるrustより使い勝手よい

318:デフォルトの名無しさん (スップ Sdea-6g7I)
17/03/27 13:39:55.07 9ObHSaYAd.net
型推論削除まだー?

319:デフォルトの名無しさん (ワッチョイ 8a32-mQmu)
17/03/27 14:34:32.14 jJTT24eR0.net
>一文字ずつの処理をプログラマが書くなんてあり得ない!!
いや、じゃあ誰が書くんだおw
アプリプログラマ、だけな、それ言うの
あと、1文字ずつの処理「も」かける、というのが便利
とりあえず「デフォ」を便利にして欲しい

320:デフォルトの名無しさん (ササクッテロラ Spd3-1VOV)
17/03/27 20:33:27.48 d0WItvzjp.net
勉強で単純なカメラアプリを作ってるんだけど、せっかくだからフレーム�


321:ニサイズだけはオリジナルにしたい でもやり方がよく分からなくて困ってる 良ければ誰かヒントをくれないだろうか



322:デフォルトの名無しさん (ワッチョイ 433c-+Vyq)
17/03/27 20:57:49.35 MSHIb1n80.net
UIWindowクラスでググったら?
と思ったら、すぐ見つかった。
“UIImagePickerController camera​Overlay​View”でググレカス
URLリンク(chicketen.blog.jp)

323:デフォルトの名無しさん (スププ Sd4a-1VOV)
17/03/28 11:35:36.43 t5HIbgfEd.net
>>313
>いや、じゃあ誰が書くんだおw
>アプリプログラマ、だけな、それ言うの
もちろん、カーネルプログラマや、ライブラリプログラマの皆さんの成果を美味しくいただけるという前提の話です。
アリガタヤ~
なんか、入力が文字列だと、自分でプログラム組んで処理する以外の方法を思いつかない人が多くて困るのだ。

324:デフォルトの名無しさん (ササクッテロル Sp17-kVPK)
17/03/30 06:19:29.38 W8d4MsA8p.net
>>315
ありがとう
それを足がかりに頑張ってみるわ

325:デフォルトの名無しさん (アウアウオー Sa1f-mlhd)
17/03/30 08:42:10.41 9khgRv1/a.net
URLリンク(goo.gl)
これは嫌だなー。。本当?

326:デフォルトの名無しさん (ワッチョイ 83f3-c5kk)
17/03/30 13:01:15.79 9EoNq1220.net
guro

327:デフォルトの名無しさん (ササクッテロリ Sp17-K8zl)
17/04/01 12:38:15.61 rvZpcbcFp.net
let isFool = false
let YouAreFool = !(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!isFool))))))))))))))))))))))
今年のグーグルのエイプリルフールネタはイマイチだね

328:デフォルトの名無しさん (アウアウエー Sa8a-qYl2)
17/04/07 23:27:50.08 A4pCb4U0a.net
過疎りすぎだろ
お前らやる気あんのか
let π = Double.pi

329:デフォルトの名無しさん (ワッチョイ f354-TNox)
17/04/08 09:36:51.95 jKlH6mxl0.net
>>321
>let π = Double.pi
おぉー、動くね!

330:デフォルトの名無しさん (ワッチョイ fb0f-B+LC)
17/04/08 09:37:52.65 FmwPLc4P0.net
そんなのに驚かれても...
とっくの昔にJavaでも動くけどな...

331:デフォルトの名無しさん (ワッチョイ f354-TNox)
17/04/08 10:33:14.51 jKlH6mxl0.net
>>323
俺、変数名に英数記号以外が来ると、拒否反応を起こす。
古いのかなぁ?俺って。
だから、let pi = Double.pi
が好みなんだけど。

332:デフォルトの名無しさん (ワッチョイ fb0f-B+LC)
17/04/08 10:36:29.24 FmwPLc4P0.net
>>324
普通は使わない
Javaでもutf8対応を示すためのただのネタで、これを本気で使ってる奴はいないだろう

333:デフォルトの名無しさん (アウアウエー Sa8a-qYl2)
17/04/08 10:50:30.96 63G3fI6va.net
Option + P でπが入力できることは当然知ってるよな?

334:デフォルトの名無しさん (スプッッ Sdb2-YI5e)
17/04/08 11:15:21.87 zwbfOwFqd.net
知らねぇだろお前ら感がにじみ出すぎててイタい

335:デフォルトの名無しさん (アウアウエー Sa8a-qYl2)
17/04/08 11:36:08.72 63G3fI6va.net
なんだ知らなかったのか
1つ賢くなったな

336:デフォルトの名無しさん (ワッチョイ fb0f-B+LC)
17/04/08 12:01:07.48 FmwPLc4P0.net
聞いてもいないのにいきなり言い出して確かにイタいな

337:デフォルトの名無しさん (ササクッテロラ Sp57-8GAO)
17/04/08 12:17:13.50 59elDVKip.net
急にJavaを比較対象として出して草
ObjCと比較しろやw

338:デフォルトの名無しさん (ワッチョイ fb0f-B+LC)
17/04/08 12:21:16.17 FmwPLc4P0.net
>>330
??

339:デフォルトの名無しさん (ワッチョイ f354-TNox)
17/04/08 12:50:51.72 jKlH6mxl0.net
>>326
うぅー。知らんかった。というか、忘れてた。
昔ΩがOption-Zで入力できるのを使ったが、それっきり。

340:デフォルトの名無しさん (ワッチョイ f354-TNox)
17/04/08 12:53:01.39 jKlH6mxl0.net
>>330
Javaとの比較歓迎なんだけど、俺は。
Javaで仕事した事ないけど、情報処理の試験対策で勉強したし。
Design Patternの本読むのに、Javaで理解


341:したし。



342:デフォルトの名無しさん (ワッチョイ f73c-D6lx)
17/04/08 13:26:15.68 bcrLvy920.net
4マダァ?

343:デフォルトの名無しさん (ササクッテロラ Sp57-8GAO)
17/04/08 13:33:22.85 59elDVKip.net
iアプリやAndroidくらいしかやったことないと比較はJavaで適当だろうけど
動作OSとかランタイムの在り方とか言語文法の系譜とか違いすぎる
同じAppleOSで動いて、.soランタイムだけ要して、without C程度の系譜の同じ土俵で評価すべきじゃね
自分が知ってる言語って程度で比較に挙げるならC#でもGoでもRubyでもなんでもアリだからw

344:デフォルトの名無しさん (ワッチョイ f73c-D6lx)
17/04/08 14:39:02.66 bcrLvy920.net
非ASCII識別子のネタなんて何の言語引き合いに出しても別に問題ないっしょ

345:デフォルトの名無しさん (ワッチョイ 32f3-qYl2)
17/04/08 16:52:22.92 EanGPAz+0.net
おっπ

346:デフォルトの名無しさん (ワッチョイ fb0f-B+LC)
17/04/08 17:04:27.68 FmwPLc4P0.net
はい

347:デフォルトの名無しさん (ワッチョイ 32f3-qYl2)
17/04/09 16:19:12.39 dBjEGHWC0.net
揉ませろ

348:デフォルトの名無しさん (ワッチョイ 1f3c-xLT8)
17/04/13 16:26:07.95 P0VwbMdt0.net
メモリー管理方式取り入れるってニュース見かけたんだけど
Swiftまた互換性無くなるんか?

349:デフォルトの名無しさん (ササクッテロラ Sp6f-+fOQ)
17/04/13 16:43:28.23 0o/hjfdWp.net
>>340
>>69

350:デフォルトの名無しさん (アウアウオー Sabf-vZSP)
17/04/13 16:50:05.36 JlstuCPca.net
「タイム互換」短すぎやでほんま
タイム互換いいたいだけやけどな

351:デフォルトの名無しさん (アウアウエー Sabf-vZSP)
17/04/13 16:58:45.96 Z4M4iBLva.net
      _          __
     /  \       /    \
   /     \    /       \
  /  / ̄ ̄\ \ / / ̄ ̄ ̄\__\
// ̄     / ̄| ̄ | ̄`くヽ__/>   |  \
 ̄        `ー'`ー'`ー'/⊿⊿ヽ    ̄ ̄
           |   | / 、/⌒ヽ,ヽ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           |   | | | 〇 O) |   < ブタモ オダテリャ キニノボル。。。
           |  __|_> ̄ ̄ ̄く       \___________
           |  (___ノ      |
           |  __|_|_     /e
           |  (___ノ、___/
           |    |
           |   |
           |   |
           |   |
           |   |
           |   |

352:デフォルトの名無しさん (ワッチョイ 1f3c-xLT8)
17/04/13 17:49:06.53 P0VwbMdt0.net
見つけた。つい最近のやつ
swiftメモリオーナシップのマニフェストが公開
URLリンク(www.infoq.com)

353:デフォルトの名無しさん (アウアウエー Sabf-vZSP)
17/04/13 17:53:40.70 Z4M4iBLva.net
オナニストに空目した

354:デフォルトの名無しさん (ワッチョイ 1ff3-vZSP)
17/04/13 18:33:03.91 WsZTJ2Pb0.net
またInfoQは2ヶ月前の話を今更ニュースにして
今日の本当の界隈ニュースはABI Dashboardがやっと公開されたこと

355:デフォルトの名無しさん (ワッチョイ 5b54-axuq)
17/04/13 20:46:27.09 gaxJh+J40.net
>>344
翻訳がひどいなぁ。
ChridではなくChrisだし、マニフェストではなく、「今後の予定」だし。

356:デフォルトの名無しさん (ササクッテロラ Sp6f-+fOQ)
17/04/13 21:43:29.30 0o/hjfdWp.net
結局、C++11 unique_ptrの文法ラップなのかな
ObjCでも使えるなら使いたいから頼むよー

357:デフォルトの名無しさん (ワッチョイ 4b3c-HE/W)
17/04/14 00:10:47.26 CJipXrOe0.net
Rust inspiredとのことだからunique_ptrなんてレベルじゃない
ライフタイムかそれに類するものを導入する気だろう

358:デフォルトの名無しさん (ワッチョイ 1f3c-xLT8)
17/04/17 11:21:13.44 rZd85UOy0.net
Swift4で何がかわりそうなのか
URLリンク(qiita.com)

359:デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
17/04/17 11:34:40.27 H6wmE3lW0.net
SE-0110
Swift3.1
let fn1: (Int, Int) -> Voi


360:d = { x in // some procedure } Swift4 let fn1: ((Int, Int)) -> Void = { x in // some procedure } Intを要素とするtupleを引数に取るclosureの記述方法が、変わるらしい。 (Int, Int)型引数は、((Int, Int))としてx.0, x.1って感じでアクセスする。ってこった。



361:デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
17/04/17 11:41:37.59 H6wmE3lW0.net
func curry<A, B, C>(_ f: @escaping (A, B) -> C) -> (A) -> (B) -> C {
return { x in
{ y in f(x, y) }
}
}
この関数の読み方が判らん!
戻り値が
(A) -> (B) -> C
って事は、
1. A型の引数を受け取り、(B) -> Cなるclosureを返すclosureが戻り値
2. (A) -> (B)なるclosureを受け取りC型を返すclosureが戻り値
どっちだ?

362:デフォルトの名無しさん (スプッッ Sd3f-IVUN)
17/04/17 12:20:26.64 vkFfzl9Jd.net
>>352
AとBの二つの引数を持つclosureを
指定したAに値を固定した場合のBだけを引数にもつclosureを返す、というclosureに変換する関数

363:デフォルトの名無しさん (ワッチョイ fbf9-kKgC)
17/04/17 16:19:08.73 3GD20cJp0.net
>>352
1の方だね

364:デフォルトの名無しさん (ワッチョイ eb92-D+C1)
17/04/17 17:25:42.88 D/VW2xRY0.net
もういい加減にしてほしいな
言語ヲタが「ボクチンが考えた最高の言語」遊びしてるようにしか見えない

365:デフォルトの名無しさん (ワッチョイ 1ff3-vZSP)
17/04/17 18:59:19.87 nd1F7ywi0.net
批判なら具体的に
でなければアンチスレへ

366:デフォルトの名無しさん (アウアウオー Sabf-vZSP)
17/04/17 19:03:02.31 kDXw+CZ7a.net
->が出てきたらその時点で->より前が引数、->より後ろが戻り値

367:デフォルトの名無しさん (ワッチョイ 5b54-axuq)
17/04/17 20:39:28.09 oD+wMWyY0.net
>>357
なるホドォ
((A) -> B) -> C
これは、
引数 ((A) -> B)
戻り値 C
ですね。

368:デフォルトの名無しさん (ワッチョイ 5b54-axuq)
17/04/17 20:40:25.07 oD+wMWyY0.net
>>358
RxSwiftのソースみてると、こんなんばっかり。
Reactive.itemsメソッドとか!

369:デフォルトの名無しさん (アウアウウー Saaf-vZSP)
17/04/17 20:46:01.79 lXU86btga.net
ヒマなんですね

370:デフォルトの名無しさん (エムゾネ FF3f-IVUN)
17/04/17 21:24:11.38 6RZC9xguF.net
>>354
まあ、curry化ってそういうものだしね

371:デフォルトの名無しさん (アウアウウー Saaf-vZSP)
17/04/17 21:25:12.82 lXU86btga.net
インド人もびっくりだよね

372:デフォルトの名無しさん (ワッチョイ 4b3c-5IwN)
17/04/17 22:47:26.87 +gxNPbQK0.net
>>355
SE-0110でググって最初のリンク開けば Bug: SR-2008 が目に入って
バグ対応なんだな、くらいはすぐに察せる
目的や理由も捉えないと余計に遠回りになるだけだぞ

373:デフォルトの名無しさん (ワッチョイ 3b0f-n2Cn)
17/04/17 23:10:09.48 /M+7HM4c0.net
>>350
いいからさっさと++、--、for(;;)を復活させろ

374:デフォルトの名無しさん (ワッチョイ 3b0f-n2Cn)
17/04/17 23:10:51.44 /M+7HM4c0.net
>>352
くっっっそ読みにくいな
さすがswiftだわ

375:デフォルトの名無しさん (ササクッテロラ Sp6f-+fOQ)
17/04/18 00:02:25.56 xQgWcwpBp.net
>>355は4で破壊変更あることを今更知ったnewbieじゃないかな
破壊しないswiftなんてswiftじゃないと思って使ってるけど、3で安定したと思っちゃった子はそこそこいそう

376:デフォルトの名無しさん (ワッチョイ 3b0f-bNqD)
17/04/18 00:31:05.68 nxzSbT3m0.net
>>355
こんなぶれぶれの独善言語についてってる奴の気が知れんわ

377:デフォルトの名無しさん (アウアウウー Saaf-vZSP)
17/04/18 00:36:29.63 84Yej/faa.net
そんな言語のスレをヲチしてるお前もなー

378:デフォルトの名無しさん (ワッチョイ fbf9-kKgC)
17/04/18 10:13:46.23 GdlQD+8N0.net
型表記中の「->」は右結合ってことでいいんだよね?

379:デフォルトの名無しさん (ワッチョイ 1ff3-vZSP)
17/04/18 12:14:40.44 Q87oUFLG0.net
URLリンク(developer.apple.com)


380:ceptual/Swift_Programming_Language/Types.html#//apple_ref/swift/grammar/function-type If a function type includes more than a single arrow (->), the function types are grouped from right to left. For example, the function type (Int) -> (Int) -> Int is understood as (Int) -> ((Int) -> Int) ―that is, a function that takes an Int and returns another function that takes and returns an Int. 引数は必ず()で囲まないといけないから、もし ((Int) -> (Int)) -> Int なら前半の()が必須 そういう意味でも (Int) -> ((Int) -> Int) としか解釈できない



381:デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
17/04/18 12:45:37.54 3Ay0w4VK0.net
>>370
THX
原則は、
1. 引数は()で囲む。囲まないと、error: require parentheses
2. 右から左方向へグループ化
例:
(S) -> (T) -> (U)

(S) -> ((T) -> (U))
と解釈される。

382:デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
17/04/18 12:47:38.45 3Ay0w4VK0.net
Reactive.itemsメソッドがこんな感じ
public func items<S: Sequence, Cell: UICollectionViewCell, O : ObservableType>
(cellIdentifier: String, cellType: Cell.Type = Cell.self)
-> (_ source: O)
-> (_ configureCell: @escaping (Int, S.Iterator.Element, Cell) -> Void)
-> Disposable where O.E == S {
以下略

383:デフォルトの名無しさん (ササクッテロラ Sp6f-+fOQ)
17/04/18 13:01:42.04 XspPM/3op.net
右から左方向が優先度高いのか
左から右に流してるイメージで逆方向のがしっくりくるが
関数型の思想としてそういうものだっけかな

384:デフォルトの名無しさん (アウアウウー Saaf-vZSP)
17/04/18 13:28:19.45 AUE9Rrcca.net
俺は若干右曲がり

385:デフォルトの名無しさん (スプッッ Sd3f-bNqD)
17/04/18 20:55:52.53 L5MP9LYsd.net
可読性の高いSwift()

386:デフォルトの名無しさん (ワッチョイ 1f3c-xLT8)
17/04/18 21:25:36.15 dlRGmA3w0.net
>>366
初期から使ってるけどSwiftにはいい加減枯れてくれって思ってる。
社内で必死こいてSwift移行推進した人たちは今肩身の狭い思いをしてるのでは。

387:デフォルトの名無しさん (ササクッテロロ Sp6f-vZSP)
17/04/18 22:03:34.33 Cbc6ZCQLp.net
Ojb-C使ってても毎年のようにAPIレベルでDeprecatedが量産されるから
Obj-Cなら変更コストが低いってわけでもない

388:デフォルトの名無しさん (スプッッ Sd3f-IVUN)
17/04/19 10:54:38.73 aMVSfr6md.net
>>351
3.1で4の書き方でやったらどうなるか試そうと思ったけど、眠くて忘れてたわ
誰かどうなるか教えて

389:デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
17/04/19 11:22:12.10 2o4P71X40.net
>>378
let fn1: ((Int, Int)) -> Void = { x in
print(x.0 + x.1)
}
fn1((1,2)) // => 3
//fn1(1,2) // error: extra argument、引数が多すぎ!

390:デフォルトの名無しさん (スプッッ Sd3f-IVUN)
17/04/19 12:18:48.30 aMVSfr6md.net
>>379
ということは、元々括弧を省略した書き方をしなければ問題ないわけね

391:デフォルトの名無しさん (スプッッ Sd3f-bNqD)
17/04/19 20:19:15.30 Vhy+qJiMd.net
Swiftの関数の書き方に近いシンタックスの言語ってある?

392:デフォルトの名無しさん (ワッチョイ 1ff3-vZSP)
17/04/19 22:12:07.64 RnslI5DB0.net
たくさんある

393:デフォルトの名無しさん (アウアウエー Sa82-p2Ky)
17/04/20 14:01:17.17 sKYAHXfOa.net
たくさんあるかは分からんけど、Rustは比較的似てる気がする
Go とか Kotlin辺りもちょっと似てるかな

394:デフォルトの名無しさん (ササクッテロラ Sp23-G776)
17/04/20 14:07:23.48 Vb04xDKlp.net
Java8も近い気がする

395:デフォルトの名無しさん (ワッチョイ 4af3-p2Ky)
17/04/20 17:04:27.86 VpJy20l50.net
String再実装の第一弾と複�


396:剥s文字列リテラルがレビュー通った



397:デフォルトの名無しさん (ワッチョイ bff3-QkHB)
17/04/21 08:24:24.47 ZBCs1arm0.net
>>385
RubyのHere Documentみたいなもんか?
json = <<'EOS'
{
"language": "Ruby"
}
EOS

398:デフォルトの名無しさん (ワッチョイ 4af3-p2Ky)
17/04/21 12:37:01.73 PVM41qEx0.net
let json = """
    {
        "lang": "Swift"
    }
    """"
json == "{¥n    ¥"lang¥": ¥"Swift¥"¥n}"
閉じ"""の行と同じインデントが自動的に削除される(行頭が閉じ"""に揃う)
便利

399:デフォルトの名無しさん (ササクッテロラ Sp23-p2Ky)
17/04/21 12:49:25.47 z0f2AZORp.net
発展途上の言語はどんどん便利になるからいいね

400:デフォルトの名無しさん (ワッチョイ 7f54-ddVw)
17/04/22 08:43:07.39 kAxmCg/50.net
>>387
詳しく!

401:デフォルトの名無しさん (ワッチョイ de92-UbXF)
17/04/22 15:30:44.86 z7G2zYcp0.net
こんなものが今頃入るとか発展途上すぎるんだよ

402:デフォルトの名無しさん (アウアウエー Sa82-p2Ky)
17/04/22 15:35:08.08 PgVA7Plza.net
Javaにはないけどな
Swiftのはインデントまで考慮されて洗練されてるし

403:デフォルトの名無しさん (ワッチョイ de92-UbXF)
17/04/22 15:42:53.58 z7G2zYcp0.net
インデント考慮って逆に分かりづらくなるような気が。。。
Optionalもそうだと思うけどSwiftって一見便利そうに見えて却って面倒くさくなってる要素が多いと思う

404:デフォルトの名無しさん (ワッチョイ 7f54-2dAw)
17/04/22 15:58:34.23 kAxmCg/50.net
>>392
あんまり、ルールが多くなると、C++みたく、不人気になるんだよねぇ。

405:デフォルトの名無しさん
17/04/23 12:04:02.69 OKIxwLfDp.net
>>390
1.0 stableだ、ヒャッハーって始めて、その後半年単位で破壊変更受けた絶望に比べたら別に、、、
発展途上どんと来い、商業採用しない前提でポストObjCの進化は愉快

406:デフォルトの名無しさん
17/04/23 13:12:37.68 PRvAU6qE0.net
>>393
今のSwiftも十分ルール多いと思うぞ

407:デフォルトの名無しさん
17/04/23 13:18:16.81 16+ithPZ0.net
>>395
同意
だから、Swift不人気になって、だれも使われなくなる。
ってストーリー展開が危険。

408:デフォルトの名無しさん
17/04/23 13:20:20.98 16+ithPZ0.net
>>394
破壊的変更だけど、事前通告もあるし。。。will be depreridated. warningとか。
納得できる変更だし、改善方向に向かってるのでOK。
改悪とか、こんな機能、だれも使わんぜぇ。ってのが無いのでoK.
Windows 10の3D Paint Brush機能って必要か?

409:デフォルトの名無しさん
17/04/23 13:52:00.91 HtOZeUof0.net
Swiftって読みにくすぎ
ObjC 3.0でいいわまじで
政治的に生まれた言語はどこかで無理が生じる

410:デフォルトの名無しさん
17/04/23 22:20:07.29 d5pkzuTb0.net
ObjCの方が読みづらいわ
読みづらいというより書きづらい…かな

411:デフォルトの名無しさん
17/04/24 09:18:14.98 OVGIDxevd.net
>>399
禿同

412:デフォルトの名無しさん
17/04/24 09:47:25.07 Et0GUfRD0.net
ObjC-2.1っての出してくれないかなぁ。
Swift2.x -> 3.xへの破壊的変更をObj-Cへも適用して欲しい。
たくさんあるinitializerをinit(xxx:)にまとめるとか、Foundation, AppKitにあるClassのメソッド名を洗練させるとか。
Foundation, AppKitって1980年代の設計のままだから、あの長いメソッド名を
ちょっとだけ短くするだけで、まだまだObj-Cは延命できそうな気がする。
Swift3.x見たく、メソッド名の短縮化をObj-Cへcome on!

413:デフォルトの名無しさん
17/04/24 09:52:31.43 mLc1nANzd.net
>>401
解ってないなあ。

414:デフォルトの名無しさん
17/04/24 10:00:22.08 Et0GUfRD0.net
>>402
詳しく!

415:デフォルトの名無しさん
17/04/24 10:02:56.87 Et0GUfRD0.net
Obj-C開発コミュニティーは崩壊しており、いまさらObj-Cのupgradeは難しいって事でしょうか?
だから、Swiftの開発が始まったって事でしょうか?
Obj-Cってコンパイル早くていい感じ何ですけど。Xcodeもサクサク動くし。
SwiftのせいでMacbook Pro15買わなくなっちゃいましたヨォ。俺は!

416:デフォルトの名無しさん
17/04/24 10:15:52.44 PIzQilqTd.net
買ったのならもういいじゃん

417:デフォルトの名無しさん
17/04/24 11:07:05.55 mLc1nANzd.net
>>403
Objective-Cの考え方は、ドキュメンテーションコード。
だから、名前を短くするのはナンセンス。

418:デフォルトの名無しさん
17/04/24 12:02:48.74 SvpXvUmYd.net
>>399
書くのがめんどくさいってのはある

419:デフォルトの名無しさん
17/04/24 21:16:37.16 P6Dtc6ePd.net
単純に文の長さが短いだけで読みにくいのは高級言語としては微妙だな

420:デフォルトの名無しさん
17/04/24 22:06:57.16 hcHY62kZ0.net
「!」は最初見たときは分かりづらいと思ったが、慣れると危険な部分が分かりやすくて良いなと思ってる

421:デフォルトの名無しさん
17/04/24 22:16:59.71 o8gY9V3aa.net
!?

422:デフォルトの名無しさん
17/04/25 08:29:23.45 O6rTDgi/0.net
プログラミング初心者なんですが、 delegateの概念がよく分かりません。
プロトコルは実装しないといけないメソッドとかをまとめるもの?という認識ですが。
開発チュートリアルやってると、なんの説明も無しにいきなりdelegateは何とかを他のクラスに委任できるなんちゃらとか、
説明が意味不明過ぎて詰みました
だれかわかりやすく説明できる方いますか?
わかりやすいサイトでもいいです
英語サイトやYouTubeでもいいです

423:デフォルトの名無しさん
17/04/25 08:33:44.54 DixYtrACd.net
>>411
スレチ

424:デフォルトの名無しさん
17/04/25 08:43:07.85 uqhlwSBc0.net
>>411
スレチ、とかってのは無視してOKっすからね。
あとdelegateパターン、delegateメソッド、delegate変数って言葉を使える様に
ならないとね。
delegateの概念ってのは、「クラスに委任」とかっていうのは単なる辞書を引いた
だけの説明なのでこれも無視です。
delegateパターンってのは2つのクラス、1つのプロトコルを使ったパターンです。
あまりにも、当たり前に使われるので、説明無しにdelegateパターンって出てきます。
この記事が参考になるんちゃいまっしゃろか?
UIKit類似Frameworkを自作してみる
URLリンク(qiita.com)

425:デフォルトの名無しさん
17/04/25 09:52:21.41 o+aECIKxa.net
デリゲートってのはなぁ・・おっと、後は>>145頼む

426:デフォルトの名無しさん
17/04/25 09:58:28.39 o+aECIKxa.net
あぁ、デリゲート先間違えた。>>416頼む

427:デフォルトの名無しさん
17/04/25 10:39:09.75 DixYtrACd.net
>>413
スレチはスレチ
swiftに関係ないし初心者質問スレでもないので質問者の想定レベルが不明
しかも>>413はdelegateの説明をしていない
あと紹介するなら、こっちじゃないの?
URLリンク(qiita.com)
iOSに限定したdelegateへの質問なら、こっちの方が答えがあると思う
[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad]
スレリンク(mac板)

428:デフォルトの名無しさん
17/04/25 10:58:46.24 3wBLGJN/0.net
片側Rangeが通った
a[..<i] とか a[...i] とか a[i...] ってデフォで


429:書ける



430:デフォルトの名無しさん
17/04/25 11:06:07.97 3fSgT78Np.net
今までデフォじゃなければ書けたの?
ユーザが拡張可能なコンパイラプラグインIFってswiftにあったっけかな

431:デフォルトの名無しさん
17/04/25 11:23:22.00 DixYtrACd.net
a.prefix(i) // a[..<i]
a.dropFirst(i) // a[i..]
と、手で書き換えるとか?

432:デフォルトの名無しさん
17/04/25 12:09:00.58 uC0QdnUhd.net
>>417
gj!
nice「とか」!

433:デフォルトの名無しさん
17/04/25 12:18:09.30 3wBLGJN/0.net
prefix operator ..<
prefix operator ...
postfix operator ...
を定義するだけ
SE-172のDetailed design真似して3.1で書いてみた
URLリンク(swift.sandbox.bluemix.net)
まだSE-148のジェネリックなsubscriptがないから、ちょっとコードの重複ができてしまった

434:デフォルトの名無しさん
17/04/25 12:45:51.70 uqhlwSBc0.net
>>421
動いた。
こんなのチャチャッっと書けるなんて、すごいねぇ。

435:デフォルトの名無しさん
17/04/25 13:29:21.36 3fSgT78Np.net
あー、オペレーションのオーバーロードか
オーバーロードしてまで使いたいとは思わないけどpythonの同類文法が使えるようになるのは幸せ
>>419-420
とか定期(俺が日本語不自由

436:デフォルトの名無しさん
17/04/25 18:50:45.06 8UEDmHts0.net
>>411
URLリンク(developer.apple.com)
URLリンク(best-practice-software-engineering.ifs.tuwien.ac.at)
URLリンク(code.tutsplus.com)
Delegateはデリゲーションパターンにおいて処理を委譲されるクラスの役割名
「委譲する」という意味の動詞としても使われる
プロトコルは他言語で言うインターフェース
DelegationはCocoaでフレームワークから開発者の書いたコードを呼び出す場合によく使われるパターン
例えばTableViewの行を選択した時に何か独自の動作を行いたいなら
UITableViewDelegateに定義されている特定のメソッドを実装してDelegateとして設定しておくと
ユーザーが行を選択した時にDelegateとして設定したクラスの該当メソッドが呼び出されて開発者が書いたコードが実行される
UITableViewDelegateがプロトコルでそのプロトコルを実装したクラスがDelegate
プロトコルとの関係がわかりにくければUITableViewDelegateProtocolという名前を省略してると考えてるといいかも

437:デフォルトの名無しさん
17/04/25 20:11:15.65 uC0QdnUhd.net
でもAppleはblockを奨めているから
今時delegateじゃないよね
まあ知っておいた方が良いかな程度?

438:デフォルトの名無しさん
17/04/25 20:23:32.46 8UEDmHts0.net
blockと何の関係があるの?

439:デフォルトの名無しさん
17/04/25 20:30:05.59 wOaxuRz+0.net
>>424
thx
2番目のURL記載のMultiple Inheritanceを避けて
Single Inheritance with Delegationってのが判りやすっすね。
CにはAの機能とBの機能が欲しい。じゃぁ、CはA, B2つのクラスを継承させれば良いか?というとそうでは無い。
CはAを継承しつつ、Bをメンバに持てば良い。

440:デフォルトの名無しさん
17/04/25 20:59:50.91 wOaxuRz+0.net
is-a関係、part-of関係がはっきり決まるオブジェクト間の関係ばかりでは無い。
例:
- 正常運転 is-a 運転、復旧運転 is-a 運転
- 正常運転 part-of 運転、復旧運転 part-of 運転
同じ概念間にis-a関係、part-of関係の両方が同時に成立する事は
ありえず、どこか間違っている。
is-a関係:Interitance
part-of関係:delegateパターン
両者を上手く使い分けるのが吉!

441:デフォルトの名無しさん
17/04/26 01:11:59.43 zySdwBLY0.net
inheritanceかな

442:デフォルトの名無しさん
17/04/26 08:47:49.85 0yNg6j//p.net
>>426
スレチだけどURLConnection(非推奨)とURLSession(推奨)見比べろ

443:デフォルトの名無しさん
17/04/26 11:01:47.26 8tL6gyso0.net
>>425
>>430
クラスやメソッドの役割によるもので単にBlock推奨、delegateが古いという話ではない
NSURLSessionのヘッダ見りゃ分かるけどSessionとTaskの関連メソッドではdelegateでの定義の方が多い

444:デフォルトの名無しさん
17/04/26 11:05:31.83 GvwT/G3X0.net
数で比較するんじゃなくて、どっちをユーザに使わせようとしてるかを比較するんだよ?
UIAlertController(推奨)とUIAlertView(非推奨)みたいなのもあるな

445:デフォルトの名無しさん
17/04/26 11:25:04.64 8tL6gyso0.net
すまん、数を持ち出したのは間違いだったが物事を単純に考えてる奴には目で見て分かりやすいと思ったので
新しいAPIでもcompletionHandlerもあればdelegateもあるし適材適所って事

446:デフォルトの名無しさん
17/04/26 11:38:07.27 GvwT/G3X0.net
適材適所であることに異論はないが、今までdelegateだったものがblockに移行してる事実はあるよね
>>426の「何の関係があるの?」の疑問は解決したかな
同じようにObjCだったものがSwiftに移行・・・はして失敗してるんだよなぁ
Swiftに移行したけど破壊変更が頻繁でメンテナンス性が悪いからObjCに差し戻そうって意見が割とガチで出て辛い

447:デフォルトの名無しさん
17/04/26 14:54:49.58 rNMObgtm0.net
>>430
なるほど>>425が言いたいことは理解したわ
Delegateをコールバックを実現する仕組みの一つとして捉えると
わざわざDelegateを定義しなくてもcompletionHandlerみたいなblockパラメータって十分ってことかな
シンプルなケースはそれでいいけど少し複雑になるとDelegate使ったほうが良いケースもあるし使い分けだよね
自分で新しく作るんじゃなくUITableViewDelegateみたいなフレームワークで用意されたプロトコルを使う場合は
コールバックを実現する仕組みというより事前に用意された拡張ポイントを使う方法として捉えてる
その場合サブクラス化、デリゲート、イベントなんかは同じグループとして捉えてるけどBlockは抽象度違うからグループの外だね

448:デフォルトの名無しさん
17/04/26 15:04:57.22 3mj2KO3W0.net
SwiftのprotocolはJavaのinterfaceみたいなもんだと説明されるけど、Javaでoptionalメソッドを定義できるの?

449:デフォルトの名無しさん
17/04/26 15:08:18.39 gZc0mpUPa.net
>>436
スレチもいいとこ

450:デフォルトの名無しさん
17/04/26 15:17:06.14 rNMObgtm0.net
>>436
何もしないデフォルト実装を用意する

451:デフォルトの名無しさん
17/04/26 15:54:00.63 3mj2KO3W0.net
>>438
なるほどぉ。

452:デフォルトの名無しさん
17/04/26 19:42:58.31 7DECPBe+d.net
funcって書くのにメソッドなの??

453:デフォルトの名無しさん
17/04/26 19:59:41.32 lYhaqZk40.net
そもそもfuncとmethodを分ける意味ってあんの?
会話で通じないとかなくね?

454:デフォルトの名無しさん
17/04/26 20:56:10.25 2ExUo8Ujp.net
Fuck!!!

455:デフォルトの名無しさん
17/04/26 21:12:05.58 7OfAzagzd.net
関数の事をmethodって言う奴は「解ってないなあ」と思う。
あと、宣言と定義の使い分けできていない人も苦手だな。

456:デフォルトの名無しさん
17/04/26 21:14:41.12 yg9vhXXld.net
伝わればなんでもいいよ

457:デフォルトの名無しさん
17/04/26 21:15:15.06 lYhaqZk40.net
ヘッダーがなくなった時点で、宣言も定義もほぼ同義じゃねーの

458:デフォルトの名無しさん
17/04/26 21:43:02.76 ZkZBCOOl0.net
Swiftでは公式に用語がどう定義されてんだろうと思って探したら丁度ズバリ書いてた
URLリンク(developer.apple.com)
In Swift, most


459:declarations are also definitions in the sense that they are implemented or initialized at the same time they are declared. That said, because protocols don’t implement their members, most protocol members are declarations only. For convenience and because the distinction isn’t that important in Swift, the term declaration covers both declarations and definitions. Swiftではプロトコルとか一部除いてほぼ宣言と同時に定義するし、いちいち区別するのメンドクセーから「宣言」も「定義」もひっくるめて「宣言」って用語だけ使うわー まぁそれもBNFだけでの話のようで、Guideの他の部分の文章では「definition」も使われたり混同されたりしてるようだけど



460:デフォルトの名無しさん
17/04/26 22:01:01.52 H5XmXuTS0.net
>>443
うっそーん?
instance method, type methodっていう言い方はするが、
instance function, type function(class function)なんて聞いたこと
ないぞぉ。

461:デフォルトの名無しさん
17/04/27 02:46:48.47 v69LNgpd0.net
>>443>>447みたいなことを口に出す人は若いなぁと思う
自分も若かりし頃は気にしてたけど年取ったら思ってても意図が伝わればどうでもいいわとなった
どうせswiftコード上だとfuncが共通で使われるし、小面倒な奴と会話するときは「ファンク」とでも言っとけばおk

462:デフォルトの名無しさん
17/04/27 08:03:13.29 T2cThVGm0.net
いやだからなんでfuncって書くのにメソッドやねん
だったらmethにでもしとけばええやん

463:デフォルトの名無しさん
17/04/27 08:35:20.62 7p4DwLyja.net
グローバルな関数とメソッドでfuncとmethを書き分けろっての?
ただの関数にmethとか使うのは抵抗あるわ
メソッドにfunc使うのは他の言語の例もあるので違和感ないけど

464:デフォルトの名無しさん
17/04/27 09:04:29.23 N3r3uYtra.net
そもそもメソッドというのはSmalltalkのコミュニティが使い始めた用語で
もともともはメッセージを受け取ったオブジェクトが目指すゴールを記述するための新しい言語要素を想定してたんだよね
だけど、けっきょくそのSmalltalkも-76以降はSimula67(ALGOLの拡張)スタイルの普通の関数に落ち着いたし
その後ブームとなったJavaもそのまま用語を採用した経緯もあって
メソッドと関数っていうのはインスタンスとオブジェクトみたいなもので区別はあまり意味をもたなくなっちゃっている
強いて言えば、クラスに属する(言語によってはプラスして暗黙のselfを受け取れる)関数をメソッドと呼ぶとかゆるいくくり

465:デフォルトの名無しさん
17/04/27 09:05:58.12 OI3ixlBfF.net
funcyな言語やで

466:デフォルトの名無しさん
17/04/27 10:36:56.84 OuTFIb+i0.net
>>451
それも、うっそーん!
Smalltalkではmethodをmessageっていうゾォ。

467:デフォルトの名無しさん
17/04/27 11:23:38.37 N3r3uYtra.net
>>453
ああ、それはSmalltalkの(というかOOPの)メッセージングというコンセプトをよくわかっていない人がやりがちな間違いで
メッセージと、それを送ることでコールされるメソッド(関数)は別物
たとえばメッセージ(仮にmとしよう)を送ってもmとは関係ないメソッドがコールされることもあるし
極端な話、何もしないという選択肢(振る舞い)もありうる
もっとも多くの場合、メッセージ(厳密にはメッセージを構成するセレクタ)とメソッド名は一致させるのが普通なので
混同するのも無理からぬことだけれども

468:デフォルトの名無しさん
17/04/27 11:49:48.89 7p4DwLyja.net
Obj-Cの


469:場合はメッセージ=メソッド的なとこあるけど、Smalltalkは違うんかね



470:デフォルトの名無しさん
17/04/27 12:55:56.69 N3r3uYtra.net
>>455
んー、Obj-Cのコミュニティ(Appleの公式文書も含め)が勘違いを広めているってよくない傾向はあるけど
Obj-CもSmalltalkもメッセージングの根本の考え方は変わらない
そもそもObj-CはSmalltalkのやっていることをCのプリプロセッサでやろうとした試みからスタートしたので変えたら意味ないし
ちなみにそのときの文法はまだメッセージ式ではなかったから純粋にコンセプトだけをなぞろうとしたことがわかる
URLリンク(dl.acm.org) (残念ながら有償)
mySodaMachine = {| SodaMachine, "comb:model:", 23, 4 |};

471:デフォルトの名無しさん
17/04/27 14:07:08.57 Wv+Yc+Vq0.net
Methods are functions that are associated with a particular type
以上。
URLリンク(developer.apple.com)

472:デフォルトの名無しさん
17/04/27 14:47:27.97 52wV30cHp.net
以上って言っても、small talkやobjcについてスレチ上等で会話してる奴等には通じない、、、
大元の>>440だけ考えたら、コード上でfunc, methの書き分けなんて面倒っていう
コンパイラ側とコーダー側の双方メリットによるものだろうよ

473:デフォルトの名無しさん
17/04/27 15:27:43.95 573QYR970.net
戻り値が void の function なんてのは C で初めて見た。
例えば BASIC や Pascal では戻り値が無いのは procedure で 戻り値があるのが function だ。
method はやり方とか手順とかいう意味で routine や procedure と同じような意味合いだ。
function というからには副作用が無い(引数以外が戻り値に影響しない)ことを期待したいところだが、「機能」という意味合いに着目すると、これらの中で最も曖昧であって、一つで済ませるなら便利かもね。

474:デフォルトの名無しさん
17/04/27 16:23:53.95 a+4IBLmkH.net
Cのvoidはアキュムレータの値を還すよ

475:デフォルトの名無しさん
17/04/27 16:43:42.91 QxU5eB0Ka.net
そんなもの返されたところで使い道は無ぇ

476:デフォルトの名無しさん
17/04/27 16:48:34.82 R6dFUrFW0.net
るーびーですねわかります

477:デフォルトの名無しさん
17/04/27 19:19:04.75 5OLYtE1F0.net
>>460
それは返すとは言いません

478:デフォルトの名無しさん
17/04/27 21:03:25.93 8BI3unQLd.net
>>458
つまり全部関数って呼べばいいんじゃないの
わざわざメソッドとか言わずに

479:デフォルトの名無しさん
17/04/27 21:31:33.44 i5BzzK+e0.net
>>464
普通の人はそれで良いと思う
頭固い偏屈な奴だけメソッドって言い張れば良いんじゃないかなぁ
と自分は思います

480:デフォルトの名無しさん
17/04/27 22:14:36.28 52wV30cHp.net
教祖様がコード上はfuncをキーワードにするけど、>>457の通り人間向けはmethodがいいって言ってる
ケースバイケースで言い換えたい所存、信仰したくない宗教だけど敬意は払う
信者はsmall talk原理主義やobjc至上主義で討論してるけど結論出ないだろ

481:デフォルトの名無しさん
17/04/27 23:12:26.96 Wv+Yc+Vq0.net
>>464
メソッドって呼んだ場合は単なる関数じゃなく
クラスや構造体なんかの特定の型に紐付いた関数だっていう意味が付随するの
それが不要だと思うなら全部関数って呼べばいいと思うよ
メソッドに限らずクロージャなんて呼ばずに全部関数って呼んでもいいし
逆に関数なんて呼ばずに全部クロージャって呼んでもいい

482:デフォルトの名無しさん
17/04/27 23:16:43.40 Wv+Yc+Vq0.net
>>458
クラスや構造体の中で定義した関数のことをメソッドと呼ぶんだからfuncキーワードを使うのが適切だろ
コンパイラ側とかコーダー側とか関係ない


483:



484:デフォルトの名無しさん
17/04/27 23:28:54.98 8BI3unQLd.net
>>467
じゃあなんでfuncとかいうキーワードなのって思うよね
つーか、キーワードなんかいらなくね?って思うんだが
そのキーワードがないとコンパイラが解釈できないシンタックスなのかな

485:デフォルトの名無しさん
17/04/27 23:37:34.54 +McxYUoga.net
キーワードないと宣言なのか呼び出しなのかコンパイラも判断に迷うだろ

486:デフォルトの名無しさん
17/04/28 00:05:28.20 uTZO7qUH0.net
>>469
もしmethodってキーワード使うとしたら、>>457の定義に従えば
メソッド = 型に関連付けられた関数
func = 関数
class { func } = 型に関連付けられた関数
         = メソッド
class { method } = 型に関連付けられたメソッド
           = 型に関連付けられた(型に関連付けられた関数)
ってことになって「頭痛が痛い」みたいにならね?w

487:デフォルトの名無しさん
17/04/28 04:06:13.32 TMPExC9ya.net
arc4random()をIntに入れるのに完璧なやり方ってある?

488:デフォルトの名無しさん
17/04/28 05:07:09.24 dZlKtiRpd.net
>>470
Cはそんなfuncとかいうキーワードないのに成り立ってて不思議だね

489:デフォルトの名無しさん
17/04/28 07:34:38.00 NEA7d0M1d.net
C言語の場合
プロトタイプ宣言
と言うように、宣言はメモリの確保を伴わない
関数定義
と言うように、定義はメモリの確保を伴う

オブジェクト指向の場合はどうなるんだろうね
コードは宣言でインスタンス化は定義かな

490:デフォルトの名無しさん
17/04/28 08:07:22.91 +uUUmIhK0.net
JavaとかObjective-Cでもfuncとかいうキーワードはないのに成り立ってるね

491:デフォルトの名無しさん
17/04/28 08:23:00.72 Z9SVt9YO0.net
他の新興言語のgoやrustはキーワードつけてるね
あってもなくても成り立たなくはないけど、ある方が流行りなんでしょ
他言語文法仕様をパクってモダンなものを作るんだから流行りに合わせてつけるのは当然でしょ

492:デフォルトの名無しさん
17/04/28 08:24:09.58 +uUUmIhK0.net
なるほどモダンねぇ...

493:デフォルトの名無しさん
17/04/28 08:25:01.60 uTZO7qUH0.net
型が後置だからだろ

494:デフォルトの名無しさん
17/04/28 08:59:20.10 1TnL0+oaF.net
>>478
それな
モダンな表現を実現するためには仕方ないな

495:デフォルトの名無しさん
17/04/28 09:15:26.74 HrVNNKWrp.net
いや、後置でもコンパイラが頑張ればできるでしょ

496:デフォルトの名無しさん
17/04/28 09:57:20.06 Ac9Dm7bId.net
明示しないとコンパイラだけじゃなく人間も頑張らなくちゃならなくなるかも

497:デフォルトの名無しさん
17/04/28 10:00:18.34 K29gCEJ0a.net
>>473
Cは変数も関数も型宣言(関数の場合は返り値の型)が先にくるからね

498:デフォルトの名無しさん
17/04/28 16:06:25.59 pTZXbcwl0.net
構文解析の問題だからメモリ確保云々は関係ないでしょ
funcキーワードを使わないとして
例えば foo() {…} と書いた場合にこれが関数定義なのか
Trailing Closureを付けて関数を実行しようとしてるのか{…}の中身を調べないと分からないし
未定義のものを実行しようとしてるのかどうかの判定も困難
キーワードがあることで構文解析・静的解析・型推論なんかで有利に働いて
言語としての表現力や安全性が高まる 特に表現力
funcじゃなくてletやvarを使ってもいい(Swift的にはこれらは関数とは呼ばないけど)
let foo = {print(“foo”)}
let bar = {() -> () in print(“bar”)}
let baz: () -> () = {…}

499:デフォルトの名無しさん
17/04/28 18:44:38.27 uTZO7qUH0.net
>>472
Intに入れるじゃ何聞きたいのか分からん
var result: Int = 0
arc4random_buf(&result, MemoryLayout.size(ofValue: result))
こういう話?
それとももっと別の話なのか

500:デフォルトの名無しさん
17/04/28 21:07:49.54 pTZXbcwl0.net
>>472
普通にIntでCastして不都合ある?
let random10 = { Int(arc4random_uniform(10)) }

501:デフォルトの名無しさん
17/05/06 16:47:48.74 3sfm3EzD0.net
『詳解Swift』ってどう?Amazonの評価は真っ二つに別れているんだけど

502:デフォルトの名無しさん
17/05/06 17:06:44.06 Vgrr/US10.net
>>486
どんな本も、読者によって評価は分かれる。
いい本とは、万人に受け入れられると考えるのは、間違い。

503:デフォルトの名無しさん
17/05/06 17:17:20.80 Du+O4KVHp.net
中上級者向けの本で内容を理解出来ないと悪いレビューつける奴いるしな

504:デフォルトの名無しさん
17/05/06 17:32:44.31 rU3gcFGYp.net
swift 3に対応した3版は出たのかねぇ
作者も読者も疲れてそうだと思った

505:デフォルトの名無しさん
17/05/06 17:49:37.89 l3lhsLeM0.net
>>486
Appleの公式本読めば十分だよ
日本語という以外の付加価値は全くないけど
公式本に近い内容を日本語で読みたければ買ってもいいと思う
一度読んだら辞書的な使い方はしないので電子版のほうがオススメ
あと荻原本は公式本よりやや説明がくどいので好き嫌い分かれる
目新しい概念をわかりやすく説明してくれてたりはしない

506:デフォルトの名無しさん
17/05/06 17:50:10.60 Vu96M1x5a.net
>>488
百田尚樹の本をサヨクが理解出来ないのと一緒だな

507:デフォルトの名無しさん
17/05/06 17:50:47.77 tXDjXsMUd.net
どうせSwiftの自己満仕様変更で古くなる参考書を何故買うかね?

508:デフォルトの名無しさん
17/05/06 19:55:06.44 3sfm3EzD0.net
古くなるのが嫌なら、IT系の本、特に入門書なんて全部買えないだろ。
それに図書館で買ってもらって読むって手もあるし。

509:デフォルトの名無しさん
17/05/06 20:50:30.20 Vgrr/US10.net
>>489
疲れたヤツも居れば、元気なヤツも居る。
C++11, C++14, C++17と立て続けに改定が進み、
疲れたヤツ、元気なヤツが居るのと同じ。

510:デフォルトの名無しさん
17/05/06 20:51:18.32 Vgrr/US10.net
>>491
素晴らしい比喩

511:デフォルトの名無しさん
17/05/06 20:52:39.76 Vgrr/US10.net
>>492
全ての仕様は、古くなる。
全ての物理常識は古くなる。
天動説だって古くなる。
だから、天動説を知らないで良いとはならんだろう。

512:デフォルトの名無しさん
17/05/06 20:54:11.98 A6Xoj7sWa.net
コンピュータの世界はどんどん新しくなるのが当たり前だろ。
言語は、その中でもまだ遅い方よ。

513:デフォルトの名無しさん
17/05/06 21:30:38.70 RxOQwEquH.net
ネットの情報は新旧混在ですぐデブリだらけになるからな

514:デフォルトの名無しさん
17/05/06 21:58:01.55 I53ls5gra.net
どんどん新しくなるといいながら、未だにフォン・ノイマン型が主流なんだよな

515:デフォルトの名無しさん
17/05/06 22:03:44.34 A6Xoj7sWa.net
分野による。
組み込みじゃハーバード型が主流。

516:デフォルトの名無しさん
17/05/06 22:12:19.08 I53ls5gra.net
ハーバード型もパラダイム的には大して変わんねーから

517:デフォルトの名無しさん
17/05/06 22:17:28.66 A6Xoj7sWa.net
データと命令で分かれてるのは地味に重要だぞ。
高速なCPUじゃ分かりにくいかもだが、低速になる程顕著。

518:デフォルトの名無しさん
17/05/06 22:31:46.28 tXDjXsMUd.net
>>496
言いたいことはまだ発展途上の言語はweb上のドキュメント参照しとけばいいってことだよ

519:デフォルトの名無しさん
17/05/06 22:35:29.44 Vgrr/US10.net
>>498
最近debrisってよく見かける単語だなぁ。
Apple系News Sitesでよく見かけるなぁ。

520:デフォルトの名無しさん
17/05/06 22:37:36.61 Vgrr/US10.net
フォン・ノイマン型 ハーバード型
ってなんの話だ?

521:デフォルトの名無しさん
17/05/06 22:39:01.34 Vgrr/US10.net
AVR, PIC vs Intel, ARM
って事なのね。

522:デフォルトの名無しさん
17/05/07 01:04:29.57 97sXlIAUp.net
早々にSwiftに移行した人達よ、工数人件費は抑えられた?上がった?

523:デフォルトの名無しさん
17/05/07 14:03:00.79 w48Ptm+H0.net
>>491
キチガイの発想は健常者には理解不能


524:だよなあ



525:デフォルトの名無しさん
17/05/07 16:21:15.72 kFOE8CxJp.net
>>507
swift1.1で業務採用して2.3までメンテしてたけど、ムリゲーだwwwってレポート挙げてobjcに差し戻した
工数人件費はお察し

526:デフォルトの名無しさん
17/05/07 17:00:21.83 4+gPHsDZ0.net
>>509
ちょっと、どう言う状況なのか?理解不能。
Swift2.3 - 3.xへの移行が難しいってのはどう言う事?
Unsafe族を使いまくってたのとか?
それでも、なんとか移植できるでしょ。2.x -> 3.xはそんなに
困難?
これから段々、Obj-C世代が居なくなるよ。

527:デフォルトの名無しさん
17/05/07 17:34:13.56 kFOE8CxJp.net
1.xの頃は開発環境が業務に耐える品質じゃなかったし
2.xはまだマシだけどやっぱり更新頻繁だったんよ
半年単位で言語仕様、API仕様が変わってたからメンテ工数がobjcの比じゃなかった
2.3から3の移行が厳しいんじゃなくて、それまでが悲惨すぎてもうやめよってなった
比較的更新速度の遅い3.0以降で業務採用始めてたら違ったかもな
まぁ早々に移行したヤツと、最近移行を考えてるヤツは状況違うから、あんまり参考にならんよ

528:デフォルトの名無しさん
17/05/07 18:21:04.90 Y4rdOdmi0.net
本番に耐えられるのはバージョン3からというしな

529:デフォルトの名無しさん
17/05/07 19:54:43.41 w48Ptm+H0.net
そういうのもあるけどXcodeがクソすぎる

530:デフォルトの名無しさん
17/05/07 20:20:45.01 59YO4yyL0.net
うちはまだSwift2.3 - 3.xへの移行まだしてないな。
GCDあたりとか手作業で書き換えないといけないらしいし、
いっそObj-Cに戻したほうがSwift3→4移行の時も苦労しなくて済みそうな気がしてくる。

531:デフォルトの名無しさん
17/05/07 22:19:05.42 dChYZV8N0.net
swift5もでるみたいだから毎年苦労することになる。

532:デフォルトの名無しさん
17/05/07 22:39:31.23 VGI2seLS0.net
4からCIでソース互換性テストやるようになったから大丈夫だろ

533:デフォルトの名無しさん
17/05/07 22:45:12.18 DJhnYmDa0.net
そろそろ仕様は安定しましたか?

534:デフォルトの名無しさん
17/05/08 00:46:35.42 j5FwBoSL0.net
移行しないという選択肢は

535:デフォルトの名無しさん
17/05/08 08:14:18.24 tEZCpO6i0.net
>>518
Appleが政治的にゴリ押してるから移行する必要性が出てるわけであって、技術的にはそれもあり

536:デフォルトの名無しさん
17/05/08 08:43:41.22 CnaMYymAa.net
>>518
数年しか使わないアプリならそれでいいんじゃない。

537:デフォルトの名無しさん
17/05/08 08:48:43.68 X/V4E59/d.net
>>517
俺は十分に安定したと判断したからswiftに移行したけど、予想が外れたら恨んでくれて良いよ

538:デフォルトの名無しさん
17/05/08 13:41:30.46 Bf5KwLeX0.net
swift触るよりreact native とtypescriptでいいんじゃないかな?
reduxでステート管理できるぜ

539:デフォルトの名無しさん
17/05/08 13:44:43.79 vwxEwAxp0.net
>>522
react nativeもなんだかなぁ。
結局JavaScriptだけで、アプリ作れる訳では無いし。
RxSwift触ってるけど、
なんで、Variableとか、Driverとかがあるのか?良く判らん。
おまけに、RxSwift3.4になって、他にも色々増えてるし。

540:デフォルトの名無しさん
17/05/08 13:46:43.44 vwxEwAxp0.net
Variable, Driver
Single, Maybe, Completable
ってのがあるんだけど、こんなにViewModelが必要なのだろうか?

541:デフォルトの名無しさん
17/05/08 16:14:31.41 bL8ez2V30.net
>>521
ABIの安定化がようやく4でなされる予定で、文法の下位互換保証は5とかになるんじゃないのかね
そんな状況下で仕様安定というのはまだ時期尚早だと思うぞ

542:517
17/05/08 16:27:33.64 WhT9Qpgj0.net
ずっと前から定期的にswiftが安定したかどうかをこのスレで尋ねてきたんだけど
今回初めてポジティブな反応があったってのは喜ばしいです
これから勉強するって立場だと、前みたいにあまりにも大きい変更があるなら
手を出しづらいけど、
そこまで大きくない変更があるぐらいならなんとかなりそうだし、
仕様が安定した頃にはバリバリ書けてる様になれるのが理想なので
そろそろ勉強し始めてみるよ
またこのスレにはお世話になると思うので
今後もよろしくお願いします

543:デフォルトの名無しさん
17/05/08 17:29:23.85 WxeP2eSJ0.net
ABI安定化は延期されたから4には入らないって何度言わせるんだ

544:デフォルトの名無しさん
17/05/08 18:17:19.90 bL8ez2V30.net
あん?3が見送りで4で安定(予定)じゃないのかいな
swift-evolutionのREADMEでは4に入ってんぞ、これからまた変わったのか?

545:デフォルトの名無しさん
17/05/08 18:44:56.25 ZyGEVEkup.net
変化を恐れては何も進歩しない

546:デフォルトの名無しさん
17/05/08 22:24:36.42 Bf5KwLeX0.net
>>523
でも大概のアプリの要求は満たせると思うが。何よりマルチプラットホームなのが嬉しい。
とはいえ、typescrptにも限界はあって
やはり動的言語を無理やり静的言語に見せかけているゆえの謎の不具合は避けられないんだよなぁ

547:デフォルトの名無しさん
17/05/09 00:14:22.36 U8IiXvlVp.net
>>529
Swiftが進歩してもらうのはウェルカムだけどObjective-Cよりメンテコストがかかるのなら敢えて採用は出来ないって会社判断もある
うちはもっと安定してからかな

548:デフォルトの名無しさん
17/05/09 01:22:08.73 U5ulV1PaF.net
>>531
賢明な判断

549:デフォルトの名無しさん
17/05/09 14:41:07.77 saKaHmAZ0.net
import Foundation
extension NSObjectProtocol {
static var className: String {
return String(describing: self)
}
}
print(String.className) // =>NSString
print(String(describing: String.self)) // =>String
最初のprint文の出力は、これで良いのでしょうか?
Terminal.appで実行しました。
513> swift -v
Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42)
Target: x86_64-apple-macosx10.9
です。

550:デフォルトの名無しさん
17/05/09 14:43:56.95 saKaHmAZ0.net
あと昔、NSObject classとNSObject protocolの2つがあった様に
記憶してますが、
protocolの方はNSObjectProtocol protocolに改名されたのでしょうか?

551:デフォルトの名無しさん
17/05/09 14:47:24.26 saKaHmAZ0.net
obj-cのNSObject protocolがswiftのNSObjectProtocolなんですね。

552:デフォルトの名無しさん
17/05/09 16:26:35.60 +4v+N8Ofp.net
ストーリーボードを使わずに開発したいんだけど、参考になる書籍がなかなか見つからん..
なんかオススメの本あったら教えてくれ

553:デフォルトの名無しさん
17/05/09 16:41:53.42 saKaHmAZ0.net
>>536
大都市圏にお住まいじゃないのかな?

554:デフォルトの名無しさん
17/05/09 16:43:02.60 aBFiO8O6a.net
>>536
ストーリーボード使えばいいじゃん
楽だよ

555:デフォルトの名無しさん
17/05/09 16:53:15.00 99drGKBN0.net
便乗で質問です。
Swiftの言語自体の解説は書籍もサイトも見つかるのですが、
ストーリーボード自体の解説をしている書籍とかサイトって、
あまり見当たり


556:ません。 なんかお勧めとかありますでしょうか?



557:デフォルトの名無しさん
17/05/09 16:57:06.02 PFfvqZY+0.net
>>533
バグっぽい
SE-0072 で String から NSString への暗黙的なキャストは禁止になったけど
NSObjectProtocol のメソッドを呼ぶときは暗黙的に NSString にキャストされるままになってしまってる
今 master の最近のビルドで試してみたらコンパイルエラーになったから 4.0 で修正されると思われる
print(NSString.className) // NSString
// print(String.className) // error: static member 'className' cannot be used on instance of type 'NSString'
print(type(of: "" as NSString).className) // NSString
Swift version 4.0-dev (LLVM 3df4892fbe, Clang 1a30829a18, Swift 79258866a2)
Target: x86_64-unknown-linux-gnu

558:デフォルトの名無しさん
17/05/09 17:02:09.65 PFfvqZY+0.net
>>536
>>539
ここは言語自体のスレなので、iOS開発関連の質問は↓このへんで聞いたほうがいい
[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad]
スレリンク(mac板)
Xcode part14
スレリンク(mac板)

559:デフォルトの名無しさん
17/05/09 17:09:44.77 99drGKBN0.net
>>541
了解です。ありがとうございます。

560:デフォルトの名無しさん
17/05/09 17:14:04.01 saKaHmAZ0.net
>>536
秘密!
俺って意地悪。
自己嫌悪。

561:デフォルトの名無しさん
17/05/09 17:21:32.43 +4v+N8Ofp.net
>>538
使わないほうがプロジェクトの管理的にいいんですよね..
>>541
すみません、誘導ありがとうございます。
そちらのスレで質問してみます。

562:デフォルトの名無しさん
17/05/09 17:23:30.33 aBFiO8O6a.net
>>544
>使わないほうがプロジェクトの管理的にいいんですよね..
なんで? 意味が分からん

563:デフォルトの名無しさん
17/05/09 17:41:17.37 XATV1oVDp.net
1つの.storyboardを複数名が修正して発狂するのはiOS/macOS開発の宿命
じゃあswiftだけ作ればいいって言うと更に発狂するし
storyboardを複数に分けるとビルド時間延びて発狂する
ホントXcodeはクソやでぇ、、、
まぁビルド時間はswift使う時点で頭くるほど延びてるんだけども
1.xの頃はホントシネと思った

564:デフォルトの名無しさん
17/05/09 19:02:34.86 kVl7/5KVp.net
1つでかいStoryboardがある場合とそれを分割した場合とじゃ後者の方がビルド早くない?ビルドキャッシュのおかげかな?

565:デフォルトの名無しさん
17/05/10 14:08:08.73 w+pKES+H0.net
>>540
THX
WWDC2017ではSwift4.0betaが出現かなぁ。
Swift3.1と4.0betaは共存できるのかな?

566:デフォルトの名無しさん
17/05/10 16:46:03.36 5zfXjNQY0.net
Swiftで開発中にハマまくったけど結局コンパイラのバグだったって経験ある人いる?
そういうのが怖くてSwift始められない人って多いと思う。

567:デフォルトの名無しさん
17/05/10 17:02:30.52 w+pKES+H0.net
>>549
540にbugの例があるだろ!
bugの回避を見つけられないなら、始めない方が良いと思う。

568:デフォルトの名無しさん
17/05/12 12:44:09.77 5uMNbvu6M.net
[速報]マイクロソフト、「Xamarin Live Player」発表。Visual Studioで開発したコードを直接iOS
/Androidデバイスに転送、実行、リモートデバッグ。Mac不要。Build 2017
URLリンク(www.publickey1.jp)
Xamarinに移行するわ。

569:デフォルトの名無しさん
17/05/12 13:59:51.73 lhbTqX1Q0.net
>>551
なかなか、良さそう。
Xamarin Live PlayerってのiPhoneへ放り込むって事で、WiFi経由でdebugできるってことか。
1本1,000円のLightning Cableが不要になるのはありがたい。

570:デフォルトの名無しさん
17/05/12 14:05:12.34 2mn6Y2Vsa.net
MS社員きてんね

571:デフォルトの名無しさん
17/05/12 14:05:21.37 Q17vINXP0.net
グダグダなswiftをみると、まともなC#に移行したくなるわな

572:デフォルトの名無しさん
17/05/12 14:36:33.56 lhbTqX1Q0.net
>>554
C#は歴史があるからなぁ。

573:デフォルトの名無しさん
17/05/12 14:37:19.76 lhbTqX1Q0.net
Microsoft Fluent Design System - YouTube
この動画感動。なんかすごそう。
簡単に、こんな、UI/UXできれば良いが。

574:デフォルトの名無しさん
17/05/12 18:51:17.19 adrx7z+4a.net
音量でかすぎた

575:デフォルトの名無しさん
17/05/12 20:26:13.04 PRgqKdu8M.net
Unityみたいにエミュレートなんじゃないのかな

576:デフォルトの名無しさん
17/05/12 20:36:48.20 eVJpK769p.net
あの日の夕暮れ時の輝くUnityみたいな君の笑顔を忘れない
Forever

577:デフォルトの名無しさん
17/05/12 22:48:43.99 lZ6lnHgt0.net
>>551
ますます、Swiftの存在価値に疑問符が打たれてきたな

578:デフォルトの名無しさん
17/05/12 22:52:46.78 5e8sApFSd.net
腐林檎怒らんの?

579:デフォルトの名無しさん
17/05/13 01:57:49.50 IqEmk/XX0.net
>>561
Appleと協議してOK出てるらしいよ

580:デフォルトの名無しさん
17/05/13 02:01:24.32 1JN0T2YBp.net
Xamarin Live Playerを使うことで、MacがなくともiOSデバイスへ開発中のアプリケーションをデプロイできるようになったため、
アプリケーション開発段階ではすべての作業をWindowsマシンだけで行うことができるようになりました(ただしAppleへの申請などのためにMacは必要となります)。
>ただしAppleへの申請などのためにMacは必要となります
>ただしAppleへの申請などのためにMacは必要となります
>ただしAppleへの申請などのためにMacは必要となります
Appleも抜かりはないな

581:デフォルトの名無しさん
17/05/13 02:03:40.83 hinxYcJy0.net
>>563
でも、それだけであればくそ高いmac本体買わないで済むわ

582:デフォルトの名無しさん
17/05/13 02:14:36.61 1JN0T2YBp.net
ユーザ拡大になるし、Mac miniでも買ってもらえるし、Developperプログラムの年会費も払ってもらえるし
まぁ、Appleにとってもメリットあるしな

583:デフォルトの名無しさん
17/05/13 06:43:51.68 As0eJ5kQ0.net
今までありがとう!Swift
Thank you Swift !!!

584:デフォルトの名無しさん
17/05/13 08:57:29.66 Z7L9CwYa0.net
低消費電力でモデム内蔵のARMベースプロセッサを使ったWindows 10マシン
今年年末に登場しそう。

585:デフォルトの名無しさん
17/05/13 09:37:10.68 rqW5CPNwa.net
C#の方が開発効率がいいってこともないしな

586:デフォルトの名無しさん
17/05/13 09:52:22.76 GNfu9LRLp.net
言語(swift)と開発環境(Xamarin)を比較しても意味もなし
でも久し振りのXamarinステマ荒しは懐かしくて感慨深い
MS買収前に結構必死にステマしに来てたよな
挙げ句、荒し隔離のためXamarin本スレが立てられたのは何年前か

587:デフォルトの名無しさん
17/05/13 11:40:17.12 XbcTyLeU0.net
業務でXcode以外でSwift使ってる人いる?

588:デフォルトの名無しさん
17/05/13 12:59:31.23 zXljI+dv0.net
Xamarin Live Playerを使ってみたので導入手順をまとめます!
URLリンク(qiita.com)

589:デフォルトの名無しさん
17/05/13 13:04:23.39 As0eJ5kQ0.net
>>570
Xcodeの補完機能があってこそかろうじて使えるswiftをわざわざ他の環境で使うメリットがあると思うなら書いて欲しい

590:デフォルトの名無しさん
17/05/13 13:15:08.25 GNfu9LRLp.net
IntelliJ系列のどこぞのIDEがswiftもサポートしてたはずで
Android Studioと操作が変わらないから Android/iOS平行実装の開発効率が良い、と�


591:イ物語を言ってみる 実際はstoryboardを十分に扱えない時点で耐えないんだけども UI伴わないライブラリ部分の実装なら可能性はある?



592:デフォルトの名無しさん
17/05/13 13:18:23.20 xkrIKHJy0.net
>>571
アザっす!

593:デフォルトの名無しさん
17/05/13 14:31:08.02 ip/BeLNq0.net
ちょっとしたことでXcode立ち上げるのめんどいときはAtomやVimもよく使う

594:デフォルトの名無しさん
17/05/13 14:41:37.17 Z7L9CwYa0.net
>>575
俺もコードの断片を試すのにVim使ってる。
Atomも気になるけど、まだ未体験。
command+Iでコードを実行できるってのが素敵。

595:デフォルトの名無しさん
17/05/13 14:47:23.12 OMAeHVCMa.net
Xcodeは普通立ち上げっぱなしやろ

596:デフォルトの名無しさん
17/05/13 23:05:16.12 GNfu9LRLp.net
vim + swiftc は正義
メモリ4Gの安いものMBAだとXcodeも重くてたまらんわー

597:デフォルトの名無しさん
17/05/14 09:22:38.57 HODPBKt90.net
>>578
偉い!
4GでXcodeは、Yosemiteだと割と快適だった。
SierraになってmacOS自体のメモリ消費が激しいのかな?
Xcode重いぜよ

598:デフォルトの名無しさん
17/05/14 20:05:43.28 oVGn9/4Pa.net
【北朝鮮ミサイル】射程4000キロ超か
株売って、疎開せえやwww

599:デフォルトの名無しさん
17/05/14 20:21:34.19 HODPBKt90.net
>>577
Xcodeたち上げっぱなし、俺もそう。

600:デフォルトの名無しさん
17/05/14 20:25:19.44 HODPBKt90.net
開発機の予備が欲しいんだけど、どっちが良いだろう?
MacBook Air 1600/13.3 MMGF2J/A
最安価格(税込):¥86,726

MacBook Pro Retinaディスプレイ 2700/13.3 MF839J/A
最安価格(税込):¥118,330

どちらも外部LCD接続で使用予定。

601:デフォルトの名無しさん
17/05/14 20:28:05.05 HODPBKt90.net
iMac Retina 4Kディスプレイモデル MK452J/A [3100]
Retina 4Kディスプレイ搭載のiMac

最安価格(税込):¥138,799 (前週比:-26円↓)

開発機にはこれが良いかも。Quad Coreだし、16GBメモリへ増設可能だし。

602:デフォルトの名無しさん
17/05/14 23:04:39.52 uv93vc4+0.net
atomの立ち上げ時間も結構しんどいよ…

603:デフォルトの名無しさん
17/05/15 11:57:21.79 EZXo4zola.net
開発機の予備なら何でもいいんじゃない。
Appleはそれほど種類があるわけでもないし。

604:デフォルトの名無しさん
17/05/15 16:35:12.83 GeJVogvRa.net
鼻味噌

605:デフォルトの名無しさん
17/05/16 09:55:12.80 5DkIZU+i0.net
ちょいと長いコード(170lines)なんですが、コンパイル出来ずに困ってます。
URLリンク(swift.sandbox.bluemix.net)

ERROR at line 64, col 9: value of type 'Bag<AnyObserver<String>>' has no member 'on'
bag.on(.next(value))

RxSwiftと同じ動きをするclass, protocolを自作しようとしているコードなんですが、コンパイル成功させるにはどの様に修正すれば良いでしょう?

コードのオリジナルは、
URLリンク(qiita.com)
から拾って来ました。オリジナルをSwift3.1へ移植したコードをswift.sandbox.bluemixへ貼りました。

606:デフォルトの名無しさん
17/05/16 11:59:38.46 ICwew/1a0.net
>>587
記事が2016年という前提で
↓のextensionが足りない
URLリンク(github.com)
正常動作かどうかは知らないがとりあえず追�


607:チ http://swift.sandbox.bluemix.net/#/repl/591a698acfa69e773dc97f42




次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch