トップページ⇒tech
1002コメント350KB

Swift part8 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (アウアウ Saaf-caug)2016/05/13(金) 23:30:06.87ID:MRCJQvHca
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

関連スレ

プログラミング言語Swift 3
http://potato.2ch.net/test/read.cgi/mac/1408762479/

[SDK]iPhoneアプリ開発初心者質問箱45[touch][iPad]
http://potato.2ch.net/test/read.cgi/mac/1447650023/

Xcode part13 [転載禁止]c2ch.net
http://potato.2ch.net/test/read.cgi/mac/1424907278/

Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/

前スレ
Swift part7
http://echo.2ch.net/test/read.cgi/tech/1458491528/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0367デフォルトの名無しさん (ササクッテロ Sp3d-4wno)2016/07/16(土) 14:28:57.87ID:zUgSRc7zp
>>366
だったら let, var の宣言の方で調整させろよ、、、と思いますがな
メソッドの修飾に入れるのは別の理由じゃねないかね
まぁアポー様は常に正しいから変わったら変わった時に手のひら返すだけだけど
0368デフォルトの名無しさん (ワッチョイ bb3c-PISr)2016/07/16(土) 15:07:35.51ID:OR/oafOw0
let, var の宣言の方で調整させるためのキーワードだよ
C++でのconstメンバ関数やmutable修飾子と概ね同じ目的
なのでコンパイラでやれたとしても、override同様に表明することに意味がある

property-set(メンバ直含む), subscript-set, mutable関数
この3つはvar変数でしか使えない
前2つはシンタックスから判別出来るけど関数は表明が無いと使う側が判別出来ない
0369デフォルトの名無しさん (ワッチョイ bb3c-PISr)2016/07/16(土) 16:17:47.48ID:OR/oafOw0
ちなみにclassでは必要無い理由はそのままclassとstructの違いに繋がって
letによる不変化がインスタンス領域に適用されないため
区別する状況自体が存在しないから
0370デフォルトの名無しさん (ササクッテロ Sp3d-4wno)2016/07/16(土) 16:28:23.70ID:zUgSRc7zp
>>368
C++やJavaのレガシー言語では納得だけど
Go, Rustのようなモダン言語のモノじゃないなぁ
Swiftはモダン文法が唯一のメリットだから頑張って欲しいネ
0371デフォルトの名無しさん (ワッチョイ bb3c-PISr)2016/07/16(土) 17:00:34.12ID:OR/oafOw0
>>370
Goはそもそもlet相当の不変化修飾が無いそうだよ
Rustはimpl時の&mut修飾がそのままswiftのmutating修飾と同義
0372デフォルトの名無しさん (アウアウ Sade-dnI1)2016/07/16(土) 17:46:14.27ID:WK2UoWkAa
mutatingが無かったら、そのメソッドがプロパティを変更するメソッドかどうかコンパイラが判断できないだろ。判断できなくもないが、ネストしたメソッドをずっと追ってくとコンパイル時間に影響を与える。
0373デフォルトの名無しさん (ワッチョイ bc2b-RgRT)2016/07/16(土) 22:35:56.74ID:2Vgg5+B40
atomicないけど、
プロパティのset/getを排他制御するときはDispatchQueueするしかない?

objc_sync_enter / objc_sync_exit はないと思ってる
0374デフォルトの名無しさん (ワッチョイ bb3c-PISr)2016/07/16(土) 23:22:38.00ID:OR/oafOw0
>>373
objc_sync_enter何で駄目なん?
dispatch_semaphore_waitでも出来るけど上記が駄目なら同様かな

単なるset/getにディスパッチはちょっとアレな気はするけど
GUI絡んだらどうせディスパッチになるし割り切りでも良いと思う
0375デフォルトの名無しさん (ササクッテロ Sp3d-4wno)2016/07/17(日) 07:28:57.69ID:a+huTauMp
>>371
だからメソッドへの修飾は冗長ってことだ
0376デフォルトの名無しさん (ワッチョイ d0c9-dnI1)2016/07/17(日) 13:10:36.99ID:rRft+gba0
mutating修飾ないと使う方も困るやろ
0377デフォルトの名無しさん (ワッチョイ bc2b-RgRT)2016/07/18(月) 09:32:57.19ID:qKKDoyHh0
>>374
何となくobjcって書きたくないのと、処理が遅い
DispatchSemaphore知らなかったから試してみる、サンキュー
0378デフォルトの名無しさん (ワッチョイ 7323-+ugl)2016/07/25(月) 08:52:42.29ID:arfROtSe0
ステマしたいスレがワッチョイ導入対象ってこと?
0379デフォルトの名無しさん (ワッチョイ f77b-9RnF)2016/07/27(水) 00:32:41.22ID:FIXZuIkL0
練習でtableViewに適当なデータを挿入するアプリを作っていたんですが、
データが20個あり、tableViewのnumberOfRowsInSectionの引数を含む関数からはデータの個数「20」が返っているにもかかわらず、
tableViewのcellForRowAtIndexPathの引数を含む関数は16回しか呼ばれずに
データの挿入が16個で、特にエラーなど吐かれずに停止してしまいます。
20個のデータ自体は17個目から壊れているということもなく、エラーも出ないためどう調査したものか行き詰まってしまいました。
これはどういった原因が考えられるでしょうか?
0380デフォルトの名無しさん (アウアウ Saff-+ugl)2016/07/27(水) 01:30:33.19ID:1La/LY56a
cellForRowAtIndexPathは基本的に画面に見えてるセルにしか呼ばれないでしょ
0381デフォルトの名無しさん (スッップ Sd5f-eQ6f)2016/07/27(水) 06:21:13.96ID:7WAEItFRd
>>379
テーブルビューを、スクロールさせてみなよ〜。

>>380
さんの言う通りだから、画面に表示される時に、呼ばれるよ。
0382デフォルトの名無しさん (ササクッテロ Sp8f-LCC3)2016/07/27(水) 13:59:58.21ID:j+ndhMFNp
>>379
それは有名なOSのバグだな
0383デフォルトの名無しさん (ササクッテロ Sp8f-eQ6f)2016/07/27(水) 14:32:42.68ID:F2gJepH5p
無駄なデータ操作しないための適切な仕様だろうに
リストアイテムが1,000とかあっても常に操作されてはたまらんわ
0384デフォルトの名無しさん (ササクッテロ Sp8f-LCC3)2016/07/27(水) 15:19:40.55ID:CvwlEFOqp
そういうことだね。
0385デフォルトの名無しさん (ワッチョイ f77b-wAF5)2016/07/27(水) 19:48:48.98ID:FIXZuIkL0
>>380-382
なるほど!と思いましたが、最下部までスクロールしても特に変化がありませんでした・・・
スクロールで一番下のセル(16個目?)でつっかえた時点で次のセルの読み込みが始まる感じなのでしょうか?

1つ関連して気づいたのは、上からセルを数えてみたところ、どうも視認できるのは14セルしか無いみたいでした。
↑では書いてなかったんですが、テーブルビューの上にUISearchBarを挿入しているので、
その幅のため2セル分スクロール画面外に追いやられている(?)のかもしれません。
それが原因で16セル目が画面に表示されず、17セル目の読み込みが始まらないということですかね?
0386デフォルトの名無しさん (スッップ Sd5f-eQ6f)2016/07/27(水) 21:21:41.62ID:7WAEItFRd
>>385
テーブルビューの高さを短くしてみれば?
0387デフォルトの名無しさん (スッップ Sd5f-tmF6)2016/07/27(水) 21:32:57.75ID:W2cFop4Pd
>>385
数えてないで、セルに番号でも表示させなさい。
0388デフォルトの名無しさん (スッップ Sd5f-eQ6f)2016/07/27(水) 22:31:08.16ID:7WAEItFRd
>>385
あ、スクロールバー、下の方どうなっている?
やっぱり、テーブルビューが長いんじゃないかな。
0389デフォルトの名無しさん (ササクッテロ Sp8f-eQ6f)2016/07/27(水) 22:31:55.81ID:F2gJepH5p
[SDK]iPhoneアプリ開発初心者質問箱46[touch][iPad] [無断転載禁止]©2ch.net
ttp://potato.2ch.net/test/read.cgi/mac/1460975101/

こっち行け
ここより正しく親切に教えてくれる
0390デフォルトの名無しさん (ワッチョイ f77b-wAF5)2016/07/27(水) 22:41:31.58ID:FIXZuIkL0
>>386-388
アドバイスありがとうございました、TableViewの長さをどうこうしてみる方向で試行錯誤してみます
また詰まったら>>389さんのほうで改めて質問したいと思います
スレ違い失礼しました。とても参考になりました!
0391デフォルトの名無しさん (スッップ Sd5f-eQ6f)2016/07/27(水) 22:47:53.58ID:7WAEItFRd
>>390
ok!

頑張ってね!
0392デフォルトの名無しさん (ワッチョイ 813c-oK17)2016/07/30(土) 01:13:26.80ID:Fe0qOD8B0
TableViewはバグが多くて使い物にならないから、
最初にViewを全部作ってScrollViewに並べた方がいいよ
0393デフォルトの名無しさん (アウアウ Sab6-kdTI)2016/07/30(土) 01:14:21.32ID:nNS5LFORa
アホ参上!
0394デフォルトの名無しさん (ワッチョイ 797b-Y0VN)2016/07/30(土) 07:20:09.08ID:ZHtwLoPd0
tableviewにバグなんてあるの?
結構みんな使うし昔からあるし、枯れてる方なんじゃない?
0395デフォルトの名無しさん (ワッチョイ e0c9-kdTI)2016/07/30(土) 08:48:36.07ID:a5YAghH00
それ初心者質問スレにも湧いてた相手しなくていいやつ
0396デフォルトの名無しさん (ワッチョイ b98f-xRNj)2016/07/31(日) 06:28:42.51ID:RXjZtQly0
VideoToolboxってCFオブジェクトベッタリなのか
Swiftから触るのは厳しいかな
0397デフォルトの名無しさん (ササクッテロ Sp69-Y0VN)2016/07/31(日) 06:41:42.56ID:DANK7jnep
CFがあるならまだマシ
本当に辛いのはサードパーティのC++ライブラリを使おうとした時

その苦痛を味わったら意外と大丈夫に思える
クソとクソを比較するようなものだけど
0398デフォルトの名無しさん (ブーイモ MMcd-xRNj)2016/08/01(月) 13:25:19.04ID:FO6wHhugM
tesuto
0399デフォルトの名無しさん (ブーイモ MMcd-xRNj)2016/08/01(月) 13:27:42.96ID:FO6wHhugM
BB2Cからなら書き込めるんか携帯縛りかとオモタ
誰かLinux版 Swift書いてるやついない?AnyObjectが使えなくて参ってるんだが
0400デフォルトの名無しさん (ササクッテロ Sp69-IdZB)2016/08/01(月) 14:20:42.38ID:1fEajE9zp
一応使えとるがな
% swift
Welcome to Swift version 3.0 (swift-3.0-PREVIEW-3). Type :help for assistance.
1> class A {}
2> let a: AnyObject = A()

エラーをエスパーするけど、String(非クラス)をAnyObject(任意クラス)にキャストしようとしてるんじゃね?
macOSだと String(非クラス) => NSString(クラス) => AnyObject(任意クラス) でCocoa経由でキャスト出来るけど
Linuxだと String(非クラス) => AnyObject(任意クラス) でキャスト出来ない
0401デフォルトの名無しさん (ブーイモ MMcd-xRNj)2016/08/01(月) 15:19:31.30ID:GELz0wQeM
すまん、正確には[String:AnyObject]にStringなり突っ込もうとするとAnyObjectじゃないです(怒)ってコンパイラに蹴られる
ちな7/25版
0402デフォルトの名無しさん (ブーイモ MMcd-xRNj)2016/08/01(月) 15:20:59.17ID:GELz0wQeM
あ、エスパーよく読んでなかった。エスパーの通りだきっと。すまん、ありがとう。ちょっと解決が早くなりそう。
0403デフォルトの名無しさん (ブーイモ MMcd-xRNj)2016/08/01(月) 16:37:42.97ID:GELz0wQeM
ダメか、安易にAnyObject->Anyしても error: contextual type 'Any' cannot be used with dictonary literal が大量に出るだけだった
まあVaporとその依存ライブラリ検索してもAnyObjectもAnyも殆ど出てこないしLinux版は極力こいつらの使用を避けるべきという空気を感じた。
Javaみたいに受け渡す形も全部定義する文化になるのかな・・
error見てるとAPIレベルの統一性もまだ怪しいわ。(Locale(identifier:)何てないっすよ、いやmacの方でそう変えろと怒られたんだけど(怒))
0404デフォルトの名無しさん (ワッチョイ 813c-kdTI)2016/08/01(月) 21:52:26.43ID:FARQwrX60
構造体とクラスが判別つきにくいのはなんとかするべきだわ
クラスにはCプリフィクス、構造体にはSプリフィクスつけるとかさ
0405デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/01(月) 22:42:08.24ID:uVFIKxq/a
ダサっ、..
0406デフォルトの名無しさん (ワッチョイ 76b2-DMQW)2016/08/01(月) 22:47:51.70ID:DY46Or+k0
>>404
今さらシステムハンガリアンを求める意見が出るとは、Swift恐るべき
0407デフォルトの名無しさん (ワッチョイ 813c-oK17)2016/08/02(火) 00:02:44.50ID:3qV5PhW20
NSObjectProtocol

これは美しいよね
NextStepが息づいているオブジェクトの契約―プロトコル―だということが示されている
0408デフォルトの名無しさん (ワッチョイ 7da6-oK17)2016/08/02(火) 00:49:43.41ID:PSACJSZS0
CPUの歓声が聞こえてきそうなセンスだな
0409デフォルトの名無しさん (JP 0Hcd-h2bY)2016/08/02(火) 08:42:29.79ID:1+WRG/xHH
>>404
それはIDEで対処すべき
0410デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/02(火) 09:46:56.26ID:4Am7tDM0a
ラジャー
0411デフォルトの名無しさん (スプッッ Sdc8-1ZjC)2016/08/02(火) 12:09:34.18ID:HzIgtAUzd
>>404
色替えて表示してくれれば良いのにな
0412デフォルトの名無しさん (ササクッテロ Sp69-9rBd)2016/08/02(火) 12:33:40.18ID:SH+voDstp
>>408
Xcode8で NSCompositeSourceOver が NSCompositingOperationSourceOver に変わるくらいだからな
変数名に動詞は美しくない、名詞で統一すべきだ!みたいな思想っぽいがコーディング&ビルド時の歓声がいい感じ
実行時にはどうせ置換されてるからユーザには関係ないし、Appleの思想はふつくしい・・・と美的センスを高めるべし
0413デフォルトの名無しさん (ササクッテロ Sp69-kdTI)2016/08/02(火) 12:56:46.10ID:pW7xUOXSp
ちんこぷるん
0414デフォルトの名無しさん (JP 0Hcd-h2bY)2016/08/02(火) 13:45:18.54ID:1+WRG/xHH
>>411
色割り当ても有限の資源やで
いちいちそんなの割り振ってられるけぇ
0415デフォルトの名無しさん (ササクッテロ Sp69-Y0VN)2016/08/02(火) 14:35:43.17ID:SH+voDstp
IDEでフォローしろと言ったり、色(IDEリソース)は有限と言ったり
今が至上だから変更する必要ないって信者かな
何かで公式対応したらそれを手放しで称賛しそう
0416デフォルトの名無しさん (ワッチョイ 813c-kdTI)2016/08/02(火) 22:07:36.60ID:VvxGwIin0
>>406
業務経験がない大学生や日曜PGには理解できないんだろうけど
業務プログラミングではいまでも普通にハンガリアン現役だよ
pPointerHensuuとかm_memberHensuuとか
INantyaraInterfaceとかdwMillisecondsとか
0417デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/02(火) 22:12:34.94ID:uniFgz6Ja
それマイクロソフト系だけじゃね?
0418デフォルトの名無しさん (ワッチョイ 813c-kdTI)2016/08/02(火) 22:14:36.97ID:VvxGwIin0
>>417
業務プログラミングにMS系もアップル系も関係ないよw
うちはC#だけだけどSwiftでもやることは一緒でしょうに
0419デフォルトの名無しさん (ワッチョイ 88d4-oK17)2016/08/02(火) 22:23:37.28ID:Yi8YUQqw0
仕事でプログラミングなんてしたくない。
よくやれるよな。
趣味でやるから面白いのに。
0420デフォルトの名無しさん (ワッチョイ 9c2b-9rBd)2016/08/02(火) 22:42:41.89ID:o9UsbVn30
Androidは mMember, sStaticMember プレフィクス推奨
Goは Iインターフェースのプレフィクス推奨, 大文字/小文字でpublic/private制御
Swiftはプレフィクスなし推奨(公式ドキュメントにあったはず)
C#は型プレフィクス推奨(だっけかな)
みたいに言語によって違うな

言語文化によってそれぞれ違う、というのが正しい判断
特定言語しか追求してない奴には理解できないんだろうけど
0421デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/02(火) 23:02:23.14ID:uniFgz6Ja
今時ハンガリアン推奨してんのはMS系だけだろ
Obj-CやSwiftでハンガリアン推してるコーディング規約とか見た事ねーわ
Linix界隈でも見た事ねーな
0422デフォルトの名無しさん (ワッチョイ 76b2-DMQW)2016/08/03(水) 00:08:06.09ID:W0lh95XI0
>>416
>業務プログラミングではいまでも普通にハンガリアン現役だよ

それって>>416のいる職場では、Win32 API や VB6 が全盛だった時代の
古き因習を未だに引きずっているっていう話だよ
それが>>416の職場では常識なのかもしれないけど、
今時の世の中の常識とはかけ離れている

それに気付けないとは、気の毒と言う他ないね


>>420
>C#は型プレフィクス推奨(だっけかな)

そのソースはどこよ?
MSの公式文書であるMSDNにはハンガリアンは非推奨と明記されてる訳だが

・一般的な名前付け規則 - .NET Framework の全般リファレンス
 https://msdn.microsoft.com/ja-jp/library/ms229045(v=vs.100).aspx

>特定言語しか追求してない奴には理解できないんだろうけど

いくつかの言語を聞きかじっただけなのに、
すべてを理解してしまったと勘違いする輩が最もやっかいだよ
その本人には自身が無知であるといふ自覚症状が無いんだから
0423デフォルトの名無しさん (ワッチョイ 793c-wtbT)2016/08/03(水) 00:16:43.87ID:Tw+AFkY00
まあまあその辺で
0424デフォルトの名無しさん (ワッチョイ 813c-kdTI)2016/08/03(水) 00:29:48.91ID:coIHhs7S0
>>422
古き良き慣習は時代が変わっても色褪せないものだよ
その証拠にMSも最新の開発言語のC#でインターフェースにIプリフィクスつけてる
プリフィクスが悪しき慣習ならMSが未だに採用していることの説明がつかない
リーダブルコードにもプリフィクスつけることで意味がわかりやすくなるって書いてある
0425デフォルトの名無しさん (ワッチョイ 76b2-DMQW)2016/08/03(水) 00:55:32.60ID:W0lh95XI0
詭弁のガイドライン

例:「犬ははたして哺乳類か」という議論をしている場合
あなたが「犬は哺乳類としての条件を満たしている」と言ったのに対して否定論者が…

1.事実に対して仮定を持ち出す
 「犬は子供を産むが、もし卵を生む犬がいたらどうだろうか?」
2.ごくまれな反例をとりあげる
 「だが、尻尾が2本ある犬が生まれることもある」
3.自分に有利な将来像を予想する
 「何年か後、犬に羽が生えないという保証は誰にもできない」
4.主観で決め付ける
 「犬自身が哺乳類であることを望むわけがない」
5.資料を示さず持論が支持されていると思わせる
 「世界では、犬は哺乳類ではないという見方が一般的だ」
6.一見、関係がありそうで関係のない話を始める
 「ところで、カモノハシは卵を産むのを知っているか?」

以下略
0426デフォルトの名無しさん (ワッチョイ 7c5a-7xJ+)2016/08/03(水) 02:02:05.54ID:X9OiqNW70
詭弁のガイドラインにうちの営業ちひろちゃん(アムウェイ大好き)がハマりすぎてて嫌だ
0427デフォルトの名無しさん (スプッッ Sdc8-Y0VN)2016/08/03(水) 06:40:05.94ID:hZEJfzBOd
>>416
あぁ・・・古き良き時代ってやつかな。
0428デフォルトの名無しさん (ササクッテロ Sp69-Y0VN)2016/08/03(水) 07:44:22.00ID:EUKo0bGfp
>>422
C#だけを取り挙げて、言語毎に違うという論点からズラしてるのは正に詭弁だなw
0429デフォルトの名無しさん (ワッチョイ e0c9-kdTI)2016/08/03(水) 09:35:31.19ID:cin2lfFV0
いち・にぃ・ハンガリアン♪
にぃ・にぃ・ハンガリアン♪
0430デフォルトの名無しさん (ササクッテロ Sp69-kdTI)2016/08/03(水) 10:01:36.34ID:qoaK0iCLp
ハンガリアンつうか型プレフイックスはさすがに古いかなと思う
たいして役に立たんし、ただでさえ長くなりがちな変数名を余計に長くするだけだ
型変換とかでまずいとこは今はIDEが警告くれるし
メンバ変数のm_も、見るとあぁこいつMS系言語出身だなとすぐわかるなw
self.m_strName = "ピカチュウ"
とかダサすぎw selfついてるからメンバ変数って一目瞭然だし、この場合文字型なのも一目瞭然
iCounterとか、bFlagとか、fnMyCallbackとか、いちいちプレフィックスつける必要なくね?
Appleも自明な変数名つけることを推奨してるしな。英語力とセンスが問われるけど
0431デフォルトの名無しさん (JP 0Hc8-oK17)2016/08/03(水) 10:07:41.60ID:un+mgcUtH
Obj-Cって、簡単に言うと C言語+クラス+機能だろ?
Swiftは何?
0432デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/03(水) 10:29:12.84ID:i6V8lLeHa
何言ってんのお前?
0433デフォルトの名無しさん (JP 0Hc8-oK17)2016/08/03(水) 10:59:34.90ID:un+mgcUtH
>>429
お前頭がオカシイって言ってるぞ
0434デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/03(水) 11:10:27.13ID:i6V8lLeHa
いやお前だよ
0435デフォルトの名無しさん (ササクッテロ Sp69-9rBd)2016/08/03(水) 11:42:26.83ID:EUKo0bGfp
>>431
Appleは Objective-C without C って言ってる
0436デフォルトの名無しさん (ワッチョイ a353-xRNj)2016/08/03(水) 12:02:01.38ID:gtoXy1DE0
経験上ハンガリアンのなにがダメかっていうとその変数の属性を人間が管理することになるから。
開発途中だと変数の属性なんて頻繁に変わるからな
型からスコープから。ものぐさはハンガリアンしてるくせにそれらが変わってもいちいち変数名を修正しないので混乱を招く。いちいち修正をする奴もそれで無駄に意識を疲労してる事に気付いていない。
Swiftでも一部ライブラリにextensionにprefixを付ける悪習が広まってるが、あれが他者と被ったり作者が気分的に変えたくなったりしたら面倒くせえなと思って敬遠してる
0437デフォルトの名無しさん (アウウィフ FF45-F8IK)2016/08/03(水) 12:09:49.63ID:mbys/AN5F
>>419
もしかして公務員?
0438デフォルトの名無しさん (ワッチョイ a353-xRNj)2016/08/03(水) 12:12:40.05ID:gtoXy1DE0
そもそもSwiftは.hと.mが一体になったおかげで
storedかlocalかなんて即判別できるんだよな
Cの時はいちいち.h開くのが地味に面倒だった
ハンガリアンが必要と感じるのも不要と感じるのも、その人の開発環境をよく知らないと簡単に口だしはできないな
0439デフォルトの名無しさん (スプッッ Sdc8-Y0VN)2016/08/03(水) 12:29:12.89ID:hZEJfzBOd
>>435
C+SmalkTalk=ObjectiveC

ObjectiveC-C=SmallTalk

そうかSwiftってSmallTalkだったんだぁ。
0440デフォルトの名無しさん (ササクッテロ Sp69-kdTI)2016/08/03(水) 12:49:28.49ID:qoaK0iCLp
短絡的すぎw
0441デフォルトの名無しさん (ワッチョイ a353-xRNj)2016/08/03(水) 12:49:39.05ID:gtoXy1DE0
Prefixに込める意味が各人で異なるってのも問題だったな
mをメンバ変数の意味で使う人もいれば、Mutableの意味で使う人もいたり
k をconstの意味で使う人もいれば、dictonaryのkey要素として使うという意味だったり(似て非なるのが気持ち悪い)
オプソでもやっぱりパッと見でハンガリアン使ってない方がスマートに感じる
ローカルルール感がなくて洗練されている印象がある
まずローカルルールを理解しろってコードは田舎臭い印象を持たれるわ
0442デフォルトの名無しさん (ワッチョイ 3f3c-PVGc)2016/08/03(水) 18:23:52.38ID:dW70LiFf0
こんな話がある
http://local.joelonsoftware.com/mediawiki/index.php/間違ったコードは間違って見えるようにする

本来の「種類(Y軸など)を付加するハンガリアン」と
誤解から生まれた「型(Intなど)を付加するハンガリアン」

>これはシモニイの意図していたことではない。
>シモニイは「タイプ」が正確に何を意味するのか注意深く説明しているが、
>それも救いにはならなかった。ダメージは為されてしまった。
0443デフォルトの名無しさん (ワッチョイ 813c-oK17)2016/08/03(水) 23:53:59.30ID:7qxgC/FR0
プレフィクスをつけると、それだけ手間をこめて作られている変数なんだなって思う
なんでもletで不変にして使い捨てるという発想は現在のコンビニ社会の病理に繋がっている
0444デフォルトの名無しさん (ワッチョイ e75a-PuCP)2016/08/04(木) 01:15:34.19ID:chLb4pJN0
せやな
0445デフォルトの名無しさん (ワッチョイ f30c-tjuG)2016/08/04(木) 02:18:17.05ID:r0NDF1ZQ0
システムハンガリアンは禁止

メソッドの最後のパラムのクロージャーのシンタックスシュガー的書き方がちょっとキモい時がある。てかクロージャーのシンタックスシュガーもキモい

こういうの書けるのかな
func { func2 { $0 } + $0 }
0446デフォルトの名無しさん (ワッチョイ fb3c-4iqd)2016/08/04(木) 03:00:38.03ID:EBp/tV2L0
🍎0のような絵文字を採用するべきだっただろうな
Swift4ではそうなっているかもしれん
0447デフォルトの名無しさん (アウアウ Saa7-TDLi)2016/08/04(木) 07:04:30.86ID:SVFS7JiRa
入力に手間がかかるから却下
0448デフォルトの名無しさん (ワッチョイ fb3c-4iqd)2016/08/04(木) 07:38:40.28ID:EBp/tV2L0
次のmacには🍎ボタンがつくでしょ
0449デフォルトの名無しさん (ブーイモ MM6f-d+5h)2016/08/04(木) 08:33:51.54ID:2z+OF9yeM
2chが絵文字対応なことに驚いた❗
0450デフォルトの名無しさん (ワッチョイ 6b23-d+5h)2016/08/04(木) 08:35:24.96ID:qYTPS07g0
むしろこれまでutf8ひたいおうだったことに👀‼
0451デフォルトの名無しさん (オッペケ Sr07-xKE3)2016/08/04(木) 09:38:46.85ID:o2lvd40xr
システムハンガリアンとアプリケーションハンガリアンがごっちゃになってるな。
アプリケーションハンガリアンや言語仕様でのプリフィクスは誰も反対してないと思う。
0452デフォルトの名無しさん (ブーイモ MMa7-4iqd)2016/08/05(金) 10:56:37.09ID:RHt058cjM
言語仕様にプレフィックスが含まれてる奴なんてないだろ
言語仕様がいけてないせいで付与せざるをえなかった便宜的なプレフィックスならあるが
0453デフォルトの名無しさん (ワッチョイ eba6-+Lqe)2016/08/05(金) 11:01:53.25ID:B5PVXDo30
rubyのことかー!
0454デフォルトの名無しさん (ブーイモ MM67-d+5h)2016/08/05(金) 11:10:11.02ID:u8ZJbz8AM
BASIC?サフィックスだけど。
0455デフォルトの名無しさん (ワッチョイ df20-dkFz)2016/08/05(金) 11:26:50.83ID:+UUjYcrK0
>>453
perlのことだろ
オンメモリ上に型情報を置かなくて済むから(当時)低スペックでもOK
IDEなんて(当時)ないので変数名だけで人が型推論できる
みたいなメリットしかない言語仕様プレフィクスだった

新興言語はそういう制約がほぼないからデメリットと見なされて無くなってはいるな
ゆえにSwiftも無駄なプレフィクスは非推奨してんだろ
ObjC(Foundation, Cocoa)とのI/F互換性のために引き続き使ってるのは許容されてる
0456デフォルトの名無しさん (ワッチョイ df20-dkFz)2016/08/05(金) 11:28:18.50ID:+UUjYcrK0
メリットしかない => メリットが目立つ
こう書かないと発狂する奴が出るので訂正するよ
0457デフォルトの名無しさん (ワッチョイ ebc9-la3/)2016/08/05(金) 13:50:53.42ID:LJe/qM3f0
rubyはperlが嫌い(Matz hates it!)と言いながら
perlのひどいところをわざわざ真似したよね
なぜ?
0458デフォルトの名無しさん (オイコラミネオ MM0f-4iqd)2016/08/05(金) 14:25:23.95ID:4DdhRhc0M
SFSpeechRecognizerとかのSFって何の略?
0459デフォルトの名無しさん (ワッチョイ f33c-gwaK)2016/08/05(金) 14:28:30.48ID:S2JwEYZ00
Speech Framework
0460デフォルトの名無しさん (ワッチョイ 77c9-TDLi)2016/08/05(金) 14:30:07.48ID:3AyP/o4E0
Speech Framework
0461デフォルトの名無しさん (ワッチョイ fb3c-IAeB)2016/08/05(金) 14:31:25.25ID:loWV5KfL0
Speech Framework
0462デフォルトの名無しさん (オイコラミネオ MM0f-4iqd)2016/08/05(金) 14:32:40.11ID:4DdhRhc0M
そのまんまじゃん!
どうして気づかなかったのか(^^;
ありがとう
0463デフォルトの名無しさん (ササクッテロ Sp07-dkFz)2016/08/05(金) 17:03:38.38ID:EtUFIOCRp
Sukoshi Fushigi

こういうプレフィクスはどうするんだろうね
Swift3に合わせてObjCの言語仕様も調整するかと思ったら見送られてるようだし
Swift Package Managerが安定する来年,再来年に調整かね(Swift3のpackage managerはクズだった
0464デフォルトの名無しさん (ササクッテロ Sp07-4iqd)2016/08/05(金) 22:54:07.73ID:Kkm3WZRop
CocoaPods買収されとけばよかったのに
よほど吹っかけたんだろうか
0465デフォルトの名無しさん (ワッチョイ 8353-4iqd)2016/08/06(土) 08:27:17.21ID:EFYxTwiP0
CocoaPadは遅いしよくトラブるから勘弁
CarthageのXcodeに手動で設定加えないといけないバグは治ったらCarthageがいい
将来が期待できるのはやっぱSPMだなあ。今はクソだけど
0466デフォルトの名無しさん (ワッチョイ d317-4iqd)2016/08/06(土) 08:51:39.68ID:W7Ms+Ki90
CocoaPodsってただのRubyスクリプトだろ
Appleがライブラリ管理に採用するわけないじゃん
■ このスレッドは過去ログ倉庫に格納されています