Swiftスレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/06/03(火) 04:12:21.08ID:rEEU5ykvhttps://developer.apple.com/swift/
0421デフォルトの名無しさん
2014/06/05(木) 23:07:49.74ID:qTkh2drY同意!!
0422デフォルトの名無しさん
2014/06/05(木) 23:10:47.70ID:DedpSM9H文法にambiguousな部分が出てきたりしないのだろうか。
0423デフォルトの名無しさん
2014/06/05(木) 23:12:19.01ID:ZqenSHM0よくわかりません、どゆこと?
0424デフォルトの名無しさん
2014/06/05(木) 23:15:46.09ID:Ss1X6IjIあと関数の引数に配列を渡して操作するきは、inout付きにした方がいいのかな
0425デフォルトの名無しさん
2014/06/05(木) 23:15:46.59ID:XqFykZgR破壊されたくなければ、明示的に
var array2 = sort(array1.copy(), >)
しろって方針なんだろうな。コスト削減のために
0426デフォルトの名無しさん
2014/06/05(木) 23:18:00.24ID:XqFykZgR0427デフォルトの名無しさん
2014/06/05(木) 23:21:06.13ID:Ss1X6IjIvar array2 = array1.copy()
array2.sort(>)
若しくは、
var array1 = [1,5,7,4]
var array2 = array1
array1.unshare()
array2.sort(>)
とか
0428デフォルトの名無しさん
2014/06/05(木) 23:27:16.58ID:ABWTHSvc仮にも標準関数なのに
0429デフォルトの名無しさん
2014/06/05(木) 23:27:27.26ID:lzzD+Ao8Effective本的なのが欲しいね。細部の落とし穴が存在しない言語なんて求めるだけ酷だろし
0430デフォルトの名無しさん
2014/06/05(木) 23:28:15.04ID:XqFykZgRa.unshare()
...//いろいろな処理
}
こうすればいいのか。
ちなみに引数のところから var を抜くとエラーになる。
0431デフォルトの名無しさん
2014/06/05(木) 23:45:56.24ID:XqFykZgRlet listB : Int[] = listA.filter({$0 % 2 == 0})
let listC = filter(listA,{$0 % 2 == 0})
listB は普通の新しい配列なのに、listC は遅延リストなのが面白いな
0432デフォルトの名無しさん
2014/06/05(木) 23:51:31.90ID:Ss1X6IjIディクショナリは代入した時点でコピーしちゃうみたなんで、おいそれと代入しにくいな
配列よりむしろディクショナリの挙動の方が気になる
0433デフォルトの名無しさん
2014/06/06(金) 00:29:37.83ID:GafzTiNN0434デフォルトの名無しさん
2014/06/06(金) 00:35:14.23ID:lrmBy0jf0435デフォルトの名無しさん
2014/06/06(金) 00:44:38.91ID:RYqBXsRpこれで他人が読めないコードが書けるな。
0436デフォルトの名無しさん
2014/06/06(金) 00:47:05.88ID:GafzTiNN0437デフォルトの名無しさん
2014/06/06(金) 00:55:20.98ID:xKXbmGps0438デフォルトの名無しさん
2014/06/06(金) 00:59:06.51ID:0NzWvF7lいうことで新言語作るのならいいけど、新しい言語作りたい病の人が大して意味もない
のに既存の言語を適当に交ぜたみたいな新言語作ったら、まあいい加減にしてくれよ、
と思うのが普通でしょ。
Appleの場合なまじプラットフォームとしては力があるから、「これでやります」と
言われたら従うしかない。
いろんな人が迷惑する。それだけにしか使い道のない言語に脳細胞使われちゃうわけで。
0439デフォルトの名無しさん
2014/06/06(金) 01:16:10.65ID:xKXbmGps選択肢が増えただけだが。
頭悪いな、君は
0440デフォルトの名無しさん
2014/06/06(金) 01:17:41.85ID:cHkwjIcWまずobj-cが古臭く冗長で無理がきてる、という問題に向き合った成果じゃないの
とりあえずの所でいうと、obj-cだって事実上Apple製品以外で使われとらんし
obj-cもうちょいどうにかならんのか、というのはユーザサイドから腐るほど言われてた言葉だしなあ
それだけにしか使いどころがないダサい言語が、とりあえず使いどころは変わってないけどフレッシュになりました、ってことでしょ
0441デフォルトの名無しさん
2014/06/06(金) 01:22:28.17ID:Ynv3Q/53ぱっと見た感じ他の言語の寄せ集めだから別に覚える事なんてほとんどないわけだが。
0442デフォルトの名無しさん
2014/06/06(金) 01:24:17.01ID:M36FOYuaSwift登場以前は居たんだろ?
0443デフォルトの名無しさん
2014/06/06(金) 01:34:54.40ID:bHnhPL3c例えばCGContextRef を取得して操作したりとかできるんでしょうか?
0444デフォルトの名無しさん
2014/06/06(金) 01:46:40.68ID:lrmBy0jfこのスレを CG で検索してみろ
0445デフォルトの名無しさん
2014/06/06(金) 02:00:09.31ID:bHnhPL3c0446デフォルトの名無しさん
2014/06/06(金) 02:27:42.23ID:cHkwjIcWや、より簡単な形でとりあえずobj-cで出来ることがだいたい出来るようになってる訳だし相反するものでもないんでないかな
smalltalk信奉者なんかで、かつ概念的な語りが好きな方々が一定数残ると思うけどね
皮肉でなく、昔語りをする人は必要だ
0447デフォルトの名無しさん
2014/06/06(金) 02:34:14.55ID:QTGzN/i90448デフォルトの名無しさん
2014/06/06(金) 02:40:41.45ID:cHkwjIcWobj-cランタイム互換でしょ
うざがられてたけど仕方ないと思われてた古めかしい設計のobj-cを苦もなく差し替えられる
あとc互換っぷりも個人的にはビビってる
低レイヤでなんか色々捗りそう
0449デフォルトの名無しさん
2014/06/06(金) 02:51:42.76ID:rzjQXmlPAndroidをGoにするのは難しいから
またAndroidはもっさりって言われちゃうな
0450デフォルトの名無しさん
2014/06/06(金) 03:00:34.92ID:30cQq14w0451デフォルトの名無しさん
2014/06/06(金) 06:06:55.21ID:kAncoGTbGoなんてGoogle社員が暇な時間に作ってみましたってだけで
別にChromeの中核スクリプトに採用する為のものでもなんでもないからな
メンツがメンツだけに一時期注目されたけどあれでも騒がれすぎだった
0452デフォルトの名無しさん
2014/06/06(金) 06:14:19.62ID:VdkUhq2q↑こいつ知ったかで良くここまで自信まんまんに恥晒せるな
すごいわ
0453デフォルトの名無しさん
2014/06/06(金) 07:38:18.52ID:1jHAJD54varでもよかったんだ
ところでbの型ってOptional(型!)だったらりする?
>>415
推測だけどGo-langのスライスみたいにArrayはあくまでラッパーで本体は別に存在するんじゃない
だから代入した場合本体の参照のみコピーされるのではないかと
unshareの機構も合点がいくし
>>447
発表した時点で”使える”言語だからじゃないの?
あと注目度の高いWWDCの基調講演で発表されたというインパクトもあるかもね
0454デフォルトの名無しさん
2014/06/06(金) 07:59:08.42ID:Wfg//q6JObjCはappleDocコメントとメソッド名で機能は殆んどつたわるからな
つかAppleDocとかCocoaPodsとかSwiftに移行するのかな
0455デフォルトの名無しさん
2014/06/06(金) 08:02:22.50ID:s5X4N2N/>>>407
>varでもよかったんだ
>ところでbの型ってOptional(型!)だったらりする?
bはOptionalにならない。必ず値が入るから。
b = a!
と同じ
0456デフォルトの名無しさん
2014/06/06(金) 08:14:54.58ID:s5X4N2N/var a:Bool?
var b = !a!
みたいな書き方も出来るのな。
まぁ否定演算子と間違える奴は居ないか
0457デフォルトの名無しさん
2014/06/06(金) 08:23:58.96ID:dQ9iK7KVSwiftレベルの文法で脳細胞使ってんなよ
初見で書けるだろこんなの
0458デフォルトの名無しさん
2014/06/06(金) 08:26:07.34ID:XasNKctc実績がないのは事実
と思っていたがdocckerでgo始まったと思ったわ
0459デフォルトの名無しさん
2014/06/06(金) 08:30:57.55ID:LzbjDMikいつまでもマルチコピペ野郎に反応すんなks
0460デフォルトの名無しさん
2014/06/06(金) 08:57:10.26ID:DTdJKogB0461デフォルトの名無しさん
2014/06/06(金) 09:32:25.44ID:NbZ9JiJcより簡単に書けるからこそ、後でみてわからなくなりそう
array[index]
[array objectAtIndex:index]
事前知識なしで意味がとりやすいのは後者
0462デフォルトの名無しさん
2014/06/06(金) 09:45:58.53ID:j3uepfFpAppleScriptを置き換えてあらゆるものを統一言語で処理する。
0463デフォルトの名無しさん
2014/06/06(金) 09:46:48.62ID:+4efFwAWADD A B GIVING C
C = A + B
事前知識なしで意味がとりやすいのは後者
こうですか!? わかりません><
0464デフォルトの名無しさん
2014/06/06(金) 09:48:04.30ID:+4efFwAW0465デフォルトの名無しさん
2014/06/06(金) 10:14:11.16ID:bHnhPL3cまぁどっちの場合もプログラマの命名センスに依存するけど
今手元に実行環境ないから確認できなけど、Arrayにも valueAtIndex的なメソッドあるんじゃないかな
0466デフォルトの名無しさん
2014/06/06(金) 10:14:32.43ID:ueXkqxBK0467デフォルトの名無しさん
2014/06/06(金) 10:22:04.34ID:y58jmSWVいやDictionaryの方は素直じゃねえか?
参照だけするなら新しいオブジェクトを増やさない。CopyOnWriteって思想でしょ。
Arrayは中身だけ書き換えるソートみたいな処理があるから、中身変えただけじゃコピーされないように
したんじゃねえの?
でも中身を書き換えてもコピーされないような特殊メソッドを用意してやったほうが良かった気がするんだよなぁ。
>>461
いやいや、[対象 操作:引数]って構文がノーマルCからかけ離れてるから、一概には……
30年前くらいにパソコンを始めるとまず学習するBASICでも配列はA(4)みたいにアクセスしてたし。
0468デフォルトの名無しさん
2014/06/06(金) 10:24:52.84ID:IcDjZ6AKhttp://peace.2ch.net/test/read.cgi/tech/1393660194/
0469デフォルトの名無しさん
2014/06/06(金) 10:33:51.88ID:VHSXa0o7人間クラス継承して美少女クラス作るとか言ってる時点でオブジェクト指向理解できてない。
美少女クラス作るなら二次元人クラス継承するに決まってんだろ
0470デフォルトの名無しさん
2014/06/06(金) 10:50:52.82ID:N1a6rny2postBlog("眠い")
だと確実に混乱する
postBlog(title: "眠い")
とみんな書いてくれるだろうか
半強制的に
[self postBlogWithTitle:@"眠い" withBody:nil]
とかなっていた方が読みやすいのは私だけか
selfとか主語も明示されているし
http://qiita.com/nori0620/items/cf956fea84e82ec2aee5#2-10
※例示しただけで元記事を否定する意図はありません
0471デフォルトの名無しさん
2014/06/06(金) 10:53:33.80ID:lrmBy0jf[self postBlog:@"眠い" with:nil]
だと確実に混乱する
[self postBlogWithTitle:@"眠い" withBody:nil]
とみんな書いてくれるだろうか
0472デフォルトの名無しさん
2014/06/06(金) 10:53:44.46ID:BvDrvDh30473デフォルトの名無しさん
2014/06/06(金) 10:57:06.27ID:DTdJKogB_name 参照してないから詐欺だよな
0474デフォルトの名無しさん
2014/06/06(金) 11:00:07.92ID:N1a6rny2オブジェクティブCのいいところって、
下のようなメソッド名に無意識のうちに誘導されるところだと思っていたんだけど、上のような書き方をする人も結構いるんですかね
0475デフォルトの名無しさん
2014/06/06(金) 11:02:40.60ID:lrmBy0jf470みたいなこと心配してる辺り、お前とお前の周囲はよっぽど低レベルなプログラマばかりだと思ったが
0476デフォルトの名無しさん
2014/06/06(金) 11:04:41.80ID:cj6UOPoT0477デフォルトの名無しさん
2014/06/06(金) 11:08:44.12ID:UcUEUerQ0478デフォルトの名無しさん
2014/06/06(金) 11:31:18.80ID:dQ9iK7KVもうSwift使うのやめなよ
0479デフォルトの名無しさん
2014/06/06(金) 11:45:21.84ID:y58jmSWV少なくともAppleの出してるガイドライン的にはしたの書き方になる
上の書き方は悪い例としてあげられている
その良いところって、ObjectiveCの、というよりライブラリの出来じゃ?
0480デフォルトの名無しさん
2014/06/06(金) 11:47:59.73ID:Tyg3LYFkでも気をつけないと行けないのはAPI作る側で、利用する側じゃないんだよな
func postBlog(title: String) {}
だと postBlog("漏らした") としか書けない
postBlog(title: "漏らした") と書けるためには
func postBlog(#title: String) {} と定義しないと行けない
デフォルトと逆にしてほしいね
デフォルトでラベル付きで、#付けたらラベル無しがいい
しかも、何故かイニシャライザはデフォルトでラベル付きになる
class Blog {
init(title: String) {}
}
って書くだけでラベル付きになる
let entry = Blog(title: "漏らした")
メソッドとイニシャライザでデフォルトが逆で紛らわしい
0481デフォルトの名無しさん
2014/06/06(金) 11:53:15.28ID:WrtGDpxm0482デフォルトの名無しさん
2014/06/06(金) 12:09:31.02ID:1jHAJD54よっぽど意味不明だと思うけど
>>455
>bはOptionalにならない。必ず値が入るから。
やっぱそうなるのね
bにnil再代入出来たらOptional Bindingの意味ないじゃんって思ってたからちょっと気になって
>>480
それなら関数名postBlogWithTitle()すればいいんじゃないの?
0483デフォルトの名無しさん
2014/06/06(金) 12:15:42.34ID:WrtGDpxm0484デフォルトの名無しさん
2014/06/06(金) 12:39:11.46ID:TaxzDts5swiftで作ったアプリはiOS7ターゲットのアプリとしてもうリリースできるの?
0485デフォルトの名無しさん
2014/06/06(金) 12:53:56.04ID:WrtGDpxm0486デフォルトの名無しさん
2014/06/06(金) 12:57:56.85ID:Tyg3LYFk>それなら関数名postBlogWithTitle()すればいいんじゃないの?
面倒くさいから1引数で例示してるけど、ラベル付き引数が真価を発揮するのは多引数のときなんで多引数で脳内変換して呼んでくれ
func fill(#red: Int, #green: Int, #blue: Int) {}
func fill(#hue: Int, #saturation: Int, #lightness: Int) {}
と定義して
fill(red: 20, green: 30, blue: 40)
と呼ぶか
func fillRGB(red: Int, green: Int, blue: Int) {}
func fillHSL(hue: Int, saturation: Int, lightness: Int) {}
と定義して
fillRGB(10, 20, 30)
と呼ぶか
俺は圧倒的に前者の方がいい
ちなみに、うっかり
func flll(red: Int, green: Int, blue: Int) { println("RGB") }
func fill(hue: Int, saturation: Int, lightness: Int) { println("HSL") }
なんて定義すると、一つ目の fill が二つ目の fill で上書きされて、
fill(20, 30, 40)
で常に二つ目の HSL の方しか呼び出されないみたい
コンパイラも何も注意してくれない…
こういううっかりミスをなくすためにもデフォルトでラベル付きにして
どうしてもラベル付けたくないときだけ # 付けてラベル無しに出来る仕様の方がいいと思うんだ
0487デフォルトの名無しさん
2014/06/06(金) 13:05:06.24ID:A5R0aIHZつまり『言語に追加した機能を使う』時は[]でっていう形で統一されてて
そこで「なにになにをさせる」って明示的な書き方をせよって念押しされてたから
他のオブジェクト指向言語が嵌った
"後でソース見たら何やってんのかわかんねぇ"問題が大幅に軽減されていたんだけど
いろいろガタがきてたCをモダン言語に差し替えたのはいいが
それで結果としてプログラマーの陥る精神疾患
「タイプ量が少なければ俺が楽、人には読めない難しい書き方する俺カッケー」が
輸入されて来ちゃったら本末転倒だよなーとは思ってる。
そもそもObjective-Cでも引数ラベルガン無視で[hoge: : :]って書いたり
キャメルケースなんかシラネーヨwwwってクラスやメソッドをAAA、BBBって
書いてもプログラム構文的には問題がないわけで
ありゃ文化的に"そう書かないと後で死ぬぞ?"と強制したものだから
Swiftでリセットした時に「魔法の呪文みたいに書くのがプロなんだよ
俺の呪文が解読できねぇのは素人!」みてぇなヒャッハー(モヒカン装備)が
流れ込んできて暴れられたらせっかくのSwiftが
他の言語が陥ったのと同じ混乱持ち込まれそうで嫌だなぁ。と
Appleはサンプルや正書法をしっかりして欲しいとは思う。
0488デフォルトの名無しさん
2014/06/06(金) 14:22:42.46ID:dQ9iK7KV0489デフォルトの名無しさん
2014/06/06(金) 14:43:09.87ID:bOG7+wI5支持してるのあって、静的型でスクリプト言語なみに簡潔にかける言語がでてきたら
静的型のほうが断然いいよな」って言っても、動的型のほうだいいって認めなかったな。
あのときの動的信者はswiftは使用禁止な。
泣いて謝ってもるゆさん。
0490デフォルトの名無しさん
2014/06/06(金) 15:21:15.78ID:7zy6H/7gなんか方法ないかなー
0491デフォルトの名無しさん
2014/06/06(金) 15:34:40.07ID:y58jmSWV方法?あるよ
クレジットカードを手にしてiOS Developer Programを購入する
0492デフォルトの名無しさん
2014/06/06(金) 15:41:17.61ID:7zy6H/7g採用
0493デフォルトの名無しさん
2014/06/06(金) 15:42:02.29ID:NEq+KBRq0494デフォルトの名無しさん
2014/06/06(金) 15:48:29.43ID:UcUEUerQ0495デフォルトの名無しさん
2014/06/06(金) 15:51:14.13ID:BJtvL66b俺は後者のほうがいいけど?
別に誰もswift強制してないんだから、objc使えばいいじゃん
0496デフォルトの名無しさん
2014/06/06(金) 15:54:05.74ID:wKIGaEH1ほんとそれ
0497デフォルトの名無しさん
2014/06/06(金) 15:56:17.69ID:y58jmSWVゲームする時間がないから躊躇してんだよなぁ
0498デフォルトの名無しさん
2014/06/06(金) 16:07:14.35ID:y58jmSWVまだできません
0499デフォルトの名無しさん
2014/06/06(金) 16:11:18.17ID:J6hrkM267800だよ。開発者登録やめてたけどSwift発表されて早く触ってみたくて即日登録した俺が言うんだから間違いないw
0500デフォルトの名無しさん
2014/06/06(金) 16:16:25.49ID:7zy6H/7gなるほどその考えいいな!最近は本当にゲームよりプログラミングの方が楽しいから行けるかも!
0501デフォルトの名無しさん
2014/06/06(金) 16:29:18.65ID:UcUEUerQ0502デフォルトの名無しさん
2014/06/06(金) 16:48:05.07ID:343Zpa5B0503デフォルトの名無しさん
2014/06/06(金) 18:42:20.59ID:T3cjS8yLそれ以上は全部スタック渡しになるようだ
でも浮動小数点はxmm0,xmm1の次はx87のスタックトップ使ってて超謎仕様
0504デフォルトの名無しさん
2014/06/06(金) 18:43:54.35ID:T3cjS8yL0505デフォルトの名無しさん
2014/06/06(金) 19:38:00.97ID:s5X4N2N/0506デフォルトの名無しさん
2014/06/06(金) 19:59:36.99ID:7T18ju/1取るってなんだ取るって、どっかにくっついちゃったのか
0507デフォルトの名無しさん
2014/06/06(金) 20:51:16.59ID:A5R0aIHZいつも会話で違和感あるの思い出した。
「落とす」も考えたらたいがいだな
0508デフォルトの名無しさん
2014/06/06(金) 21:22:13.16ID:xKXbmGps0509デフォルトの名無しさん
2014/06/06(金) 21:25:39.79ID:s5X4N2N/key-value的に使うことが多いからじゃね?
後は処理結果とエラーコードとか
0510デフォルトの名無しさん
2014/06/06(金) 21:33:29.63ID:XcM2C4Vm一般にはN個の要素から構成されるタプル(tuple, 組)について、
2要素のものをペア(pair, 対)と呼ぶ
同様に、3要素をトリプル(triple)、4要素をクワッダプル(quadruple)と
呼ぶことがある
Wikipediaの「タプル」のページに詳しい解説あり
0511デフォルトの名無しさん
2014/06/06(金) 21:35:00.88ID:5aTUsUzW石川梨華は2Dではない
0512デフォルトの名無しさん
2014/06/06(金) 21:35:46.29ID:bHnhPL3c0513デフォルトの名無しさん
2014/06/06(金) 21:36:10.59ID:Jz5ObmDX0514デフォルトの名無しさん
2014/06/06(金) 21:36:59.13ID:lrmBy0jf0515デフォルトの名無しさん
2014/06/06(金) 21:43:55.80ID:XcM2C4Vm0516デフォルトの名無しさん
2014/06/06(金) 21:58:13.31ID:bHnhPL3cOptional Types とか force-unwrap とか Optional Chaining とか
Subscripts とか Memberwise initializer とか Nested Types とか
どういう風に訳されるのかね
適当な訳語が乱立しないようにApple Japan辺りが指針を出すべきだと思うけどね
0517デフォルトの名無しさん
2014/06/06(金) 22:24:12.80ID:KlEM9OMP0518デフォルトの名無しさん
2014/06/06(金) 22:31:33.80ID:bHnhPL3cDesignated Initializer もデシグネイテッドイニシャライザじゃなくて指定イニシャライザって訳してるし
0519デフォルトの名無しさん
2014/06/06(金) 22:31:56.30ID:ICJsHYDG0520デフォルトの名無しさん
2014/06/06(金) 22:37:48.39ID:qsDOAuAzデザイネイテッドとちゃうの
■ このスレッドは過去ログ倉庫に格納されています