Swift part2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/06/11(水) 14:42:15.02ID:+13mKJ0ZApple Developer
https://developer.apple.com/swift/
Welcome to Swift
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/
iBooks: The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
書籍の形にはなってないけどドキュメント
The Swift Programming Language
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
今のところbeta版のXcode 6がSwift対応らしい
https://developer.apple.com/xcode/downloads/
関連スレ
TypeScript(MS) VS Swift(Apple)
http://peace.2ch.net/test/read.cgi/tech/1401758403/
前スレ
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
0680デフォルトの名無しさん
2014/07/10(木) 23:28:51.53ID:lVukJkUeメソッドも呼び出せる! Swiftの強力な「列挙型」
http://codezine.jp/article/detail/7886?p=3
> このInt?型の返り値に対し、Int型に定義されているdescription()メソッドを呼び出したいとしましょう。(略)
> let numStr: String = "134"
> numStr.toInt().description() // エラー
>
> しかし、「.」の前に「?」を置くことでそれが可能になります。この仕組みがオプショナルチェーンです。
> let numStr: String = "134"
> numStr.toInt()?.description() // Some "134"
0681デフォルトの名無しさん
2014/07/10(木) 23:57:21.29ID:D385SCPI0682デフォルトの名無しさん
2014/07/11(金) 00:29:23.34ID:aG0lM3e/クソワロタ。カタカナにしただけじゃねぇか
0683デフォルトの名無しさん
2014/07/11(金) 01:01:57.33ID:RRV/Pxnb0684デフォルトの名無しさん
2014/07/11(金) 01:20:04.92ID:CNdrj7fpclass A {}
class B : A {}
protocol AAA { func hoge(x: B) }
class Hoge : AAA { func hoge(x: A) {} }
0685デフォルトの名無しさん
2014/07/11(金) 02:23:59.31ID:MKluaUW0定義するときの書き方が違うだけで一応どの書き方でも書けるんだな
・イニシャライザ
init(message: String, to: String) {...} // 全部キーワードつける
init(_ message: String, to: String) {...} // 最初だけキーワードつけない
init(_ message: String, _ to: String) {...} // 全部キーワードつけない
・メソッド
func say(message msg: String, to: String) {...} // 全部キーワードつける
func sayMessage(message: String, to: String) {...} // 最初だけキーワードつけない
func sayMessageTo(message: String, _ to: String) {...} // 全部キーワードつけない
・関数
func print(message msg: String, to target: String) {...} // 全部キーワードつける
func printMessage(message: String, to target: String) {...} // 最初だけキーワードつけない
func printMessageTo(message: String, to: String) {...} // 全部キーワードつけない
0686デフォルトの名無しさん
2014/07/11(金) 08:14:28.21ID:uNtAoQ80使う方法が一般的だったんだが、
なんで初期化子を直呼びする様になったんだ。
不便極まりない。
0687デフォルトの名無しさん
2014/07/11(金) 08:17:27.29ID:PGMEzY6Rという至極真っ当でAppleらしからぬ思想の言語だから
0688デフォルトの名無しさん
2014/07/11(金) 08:17:36.76ID:mjjIchhE>Int型に定義されているdescription()メソッド
description はメソッドじゃなくてプロパティ
>numStr.toInt().description() // エラー
エラーになるのはメソッドとして呼ぼうとしてるからで
numStr.toInt().description // これなら普通におk
>しかし、「.」の前に「?」を置くことでそれが可能になります。
>numStr.toInt()?.description() // Some "134"
だから .description() ってやってる限り無理だっつってんだろ
こいつコード動くか実際に試さず書いてるな
これだからクラスメソッドは信用できないんだ
0689デフォルトの名無しさん
2014/07/11(金) 10:55:34.77ID:Lx3So7Yg0690デフォルトの名無しさん
2014/07/11(金) 11:08:18.34ID:MKluaUW0そのときのObjCとSwiftのブリッジングってどうなってるんだろう?と思って試してみたら
Swift→ObjCは
init(message: String, to: String) → initWithMessage: to:
init(_ message: String, to: String) → init: to:
init(_ message: String, _ to: String) → init: :
・メソッド
func say(message msg: String, to: String) → sayWithMessage: to:
func say(message: String, to: String) → say: to:
func say(message: String, _ to: String) → say: :
ObjC→Swiftは
initWithA: b: → init(a: 〜, b: 〜)
みたいにメソッド名が自動変換されるんだな
じゃぁ func say(message msg: String, to: String) の他に func sayWithMessage(message: String, to: String) とか、
initWithA: B: の他に initA: B: とかがあったら同じ名前になって競合するんじゃねーの?と思ったら、片方が無かったことにされた・・・
まぁ、実際そんな名前ついたイニシャライザやメソッドがあるなんてことは無いだろうし、問題は起きないんだろうけど
0691デフォルトの名無しさん
2014/07/11(金) 11:27:42.48ID:CNdrj7fpnumStr.toInt()?.description でも
numStr.toInt().description でもコンパイル通るのよ
こんな特殊なものを例に上げたのがまちがい
0692デフォルトの名無しさん
2014/07/11(金) 12:38:41.57ID:jyGo9R2ghttp://stackoverflow.com/questions/24682387
0693デフォルトの名無しさん
2014/07/11(金) 13:13:47.55ID:GkReUTvU?
0694デフォルトの名無しさん
2014/07/11(金) 19:39:36.60ID:jyGo9R2g0695デフォルトの名無しさん
2014/07/11(金) 22:48:06.60ID:izMO91L20696デフォルトの名無しさん
2014/07/12(土) 01:43:26.47ID:pUnCThIkC言語との連携は結構よくできてるわ
0697デフォルトの名無しさん
2014/07/12(土) 02:16:53.71ID:R5OtEg7d0698デフォルトの名無しさん
2014/07/12(土) 02:42:46.74ID:pUnCThIkmmapでバイナリファイル読む例
http://codepad.org/SQH29SHl
0699デフォルトの名無しさん
2014/07/12(土) 06:52:52.22ID:Pi6lV0ruそんな馬鹿なと思ってプロファイラ見たら配列生成の内部ストレージ確保が
めっちゃ時間食ってるみたい
0700デフォルトの名無しさん
2014/07/12(土) 08:44:15.61ID:7baV5ONW0701デフォルトの名無しさん
2014/07/12(土) 13:57:25.38ID:R5OtEg7dhttps://developer.apple.com/swift/blog/
0702デフォルトの名無しさん
2014/07/12(土) 14:17:49.48ID:R5OtEg7dhttp://qiita.com/dankogai/items/052a3ad6f32d114a33fc
0703デフォルトの名無しさん
2014/07/12(土) 19:20:58.04ID:xLJj+FnH0704デフォルトの名無しさん
2014/07/12(土) 19:24:00.64ID:BxmHv/rKアップルはすぐ長ったらしい拡張子つけるよね。xcworkspaceとか。
てか、拡張子って3文字以下じゃないと駄目みたいな決まりなかったっけ?
swfとかでいいのにね。
0705デフォルトの名無しさん
2014/07/12(土) 19:31:52.68ID:xLJj+FnH確かに
.xcodeprojとかもあったな
ところで.swfは釣りっすか?w
0706デフォルトの名無しさん
2014/07/12(土) 19:40:07.02ID:hFyjpWla0707デフォルトの名無しさん
2014/07/12(土) 19:54:39.63ID:6CFefVBC0708デフォルトの名無しさん
2014/07/12(土) 19:56:25.31ID:CDlL/Wk/それはMS-DOSというかその前のCP/Mの制限だな。ファイル名8文字+拡張子3文字。
UNIXなんかは元々ファイルシステム上では単一の文字列でピリオド以降を拡張子として解釈するだけだから特に制限はない。
昔のMacOSだとファイル名と別に4文字までのTYPEが付けられる。
0709デフォルトの名無しさん
2014/07/12(土) 19:58:38.41ID:QxcUStnc0710デフォルトの名無しさん
2014/07/12(土) 19:59:03.13ID:awTqtEB0拡張子が3文字以下なことが多いのは、大昔の制限の名残だよ。
swiftは5文字なんだからそのままでいいでしょ
Scalaの拡張子もscalaだし
0711デフォルトの名無しさん
2014/07/12(土) 20:14:12.27ID:CKeavNXA冷静に考えよう
scala が 3文字になったら sca ですよ
0712デフォルトの名無しさん
2014/07/12(土) 20:15:43.85ID:uQaOo2aVそりゃプロジェクトファイルなんて数が少ないからどうでもいいんだよ
MSはソースファイルの拡張子は長くしない
0713デフォルトの名無しさん
2014/07/12(土) 21:17:23.03ID:HSia6VRMC++ (vector) --> 0.068秒
Python -> 0.173秒
Ruby --> 0.169秒
Swift (-Ofast付き) -> 2.32 秒
正式リリースまでにはまともになるのだろうか
0714デフォルトの名無しさん
2014/07/12(土) 21:23:12.71ID:74gS95aI0715デフォルトの名無しさん
2014/07/12(土) 21:28:51.25ID:YFp0R0a/FATファイルシステムの制限だよね。
0716デフォルトの名無しさん
2014/07/12(土) 21:39:21.19ID:HSia6VRM測ってみた
ObjC (NSArray) --> 0.414秒
0717デフォルトの名無しさん
2014/07/12(土) 21:43:46.26ID:74gS95aI0718デフォルトの名無しさん
2014/07/12(土) 21:52:52.01ID:I6M2/WNb糞言語だな
0719デフォルトの名無しさん
2014/07/12(土) 21:59:41.56ID:6CFefVBC0720デフォルトの名無しさん
2014/07/12(土) 22:07:44.47ID:R5OtEg7d作っておけば勝手に早くなってくれるんだから気にすることは無い。
0721デフォルトの名無しさん
2014/07/12(土) 22:15:35.10ID:ktHPdObyスレチになるけど、Python と Ruby の差が
予想以上に小さいことに驚いた
何か魔法を使っている?
それとも Python 最速伝説は幻想だったのかなぁ ....
0723デフォルトの名無しさん
2014/07/12(土) 22:19:33.25ID:UUivqCYRrubyは1.9からVMになってて、かなり高速化した。
まあ、配列作るだけのベンチマークにどれだけ意味があるのか分からんが
0724デフォルトの名無しさん
2014/07/12(土) 22:23:10.11ID:QxcUStnc0725デフォルトの名無しさん
2014/07/12(土) 22:36:49.50ID:B7XGURdfディクショナリ型はどうかなぁ
0726デフォルトの名無しさん
2014/07/12(土) 22:42:25.77ID:74gS95aI0727デフォルトの名無しさん
2014/07/13(日) 00:01:10.09ID:2r9XuANiWindowsにもthemeやmanifestなんて拡張子が増えたね
0728デフォルトの名無しさん
2014/07/13(日) 03:27:41.34ID:hh7t9GxI0729デフォルトの名無しさん
2014/07/13(日) 03:28:55.46ID:hh7t9GxIそのうち拡張子にホワイトスペースが含まれる時代がもうすぐ
0730デフォルトの名無しさん
2014/07/13(日) 08:43:44.21ID:FukqOMB8おまえのソース、みたくないものだな
0731デフォルトの名無しさん
2014/07/13(日) 12:53:54.09ID:f0JToqLxこの調子でSwiftコンパイラとlibswift_stdlibもオープンソースにしてくだしあ
0732デフォルトの名無しさん
2014/07/13(日) 12:56:08.02ID:zSV3XHBMCの良さを捨て去ったSwiftは許せん
0733デフォルトの名無しさん
2014/07/13(日) 13:20:52.58ID:hh7t9GxI0734デフォルトの名無しさん
2014/07/13(日) 13:54:25.32ID:Xj6Z/8Xz三日坊主にならなきゃいいが
0735デフォルトの名無しさん
2014/07/13(日) 13:59:12.52ID:XamuTFgihttps://github.com/ksm/SwiftInFlux
0736デフォルトの名無しさん
2014/07/13(日) 14:22:15.47ID:Au996OtXじゃあ安心して今後の改善に期待していいかな?
0737デフォルトの名無しさん
2014/07/13(日) 14:42:18.87ID:09pjGLVO> full grapheme clusters, which are composed of multiple code points.
Character
Note that Character is still evolving and will settle down by the final release of 1.0.
One of the reasons that we use double quote syntax to initialize Characters is that they are expected to be able to hold full grapheme clusters, which are composed of multiple code points. This will roll out in a later beta.
-- Chris Lattner
grapheme 字素
http://m.kotobank.jp/word/グラフィーム
0738デフォルトの名無しさん
2014/07/13(日) 14:47:04.79ID:XamuTFgiアクセントや濁点等の結合文字とか、サロゲートペアとか
文字コード上では2文字でも見た目が1文字なら1文字のCharacterとして扱うということでしょ
0739デフォルトの名無しさん
2014/07/13(日) 14:48:19.25ID:Au996OtXこういうこと
0740デフォルトの名無しさん
2014/07/13(日) 14:52:53.43ID:09pjGLVO日本も昔のASCII時代の濁点は困ってたけど。
0741デフォルトの名無しさん
2014/07/13(日) 14:57:34.52ID:BT8HK/tO多忙すぎてオープンソースにするかどうかの議論すらやる暇ないそうな
http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/073698.html
0742デフォルトの名無しさん
2014/07/13(日) 16:15:17.48ID:mp4RlYuSがんばれ
0743デフォルトの名無しさん
2014/07/14(月) 15:34:51.35ID:lReUhcBfあー、SwiftのREPLってこういう恩恵もあるのか
これは地味に嬉しい
0744デフォルトの名無しさん
2014/07/14(月) 16:24:45.59ID:JENp6B27Objective-Cでも使えるよ、repl関係ないよ
0745デフォルトの名無しさん
2014/07/14(月) 16:32:30.07ID:GToJEt01こんなクローズドな言語イラネ
0746デフォルトの名無しさん
2014/07/14(月) 16:50:08.98ID:xs99ZBfy0747デフォルトの名無しさん
2014/07/14(月) 16:58:55.70ID:lReUhcBfありゃ、そうなのかすまん
IB上ですぐ反映されるっていうから例のPlaygroundみたいに裏で実行してるのかと思ったよ
0748デフォルトの名無しさん
2014/07/14(月) 17:08:43.73ID:Z5ME5LpP0749デフォルトの名無しさん
2014/07/14(月) 17:10:01.47ID:4Au1+Pyc0750デフォルトの名無しさん
2014/07/14(月) 17:10:03.91ID:sQKqFHYbミ 彡 ,.ィi彡',.=从i、;;;;;;;;;;;;
三 ギ そ 三 ,ィ/イ,r'" .i!li,il i、ミ',:;;;;
三. ャ れ 三 ,. -‐==- 、, /!li/'/ l'' l', ',ヾ,ヽ;
三 グ は 三 ,,__-=ニ三三ニヾヽl!/,_ ,_i 、,,.ィ'=-、_ヾヾ
三 で 三,. ‐ニ三=,==‐ ''' `‐゛j,ェツ''''ー=5r‐ォ、, ヽ
三. 言 ひ 三 .,,__/ . ,' ン′  ̄
三 っ ょ 三 / i l,
三. て っ 三 ノ ..::.:... ,_ i ! `´' J
三 る と 三 iェァメ`'7rュ、,ー' i }エ=、
三 の し 三 ノ "'  ̄ ! '';;;;;;;
三 か て 三. iヽ,_ン J l
三 !? 三 !し=、 ヽ i ,.
彡 ミ ! "'' `'′ ヽ、,,__,,..,_ィ,..r,',",
彡川川川ミ. l _, , | ` ー、≡=,ン _,,,
ヽ、 _,,,,,ィニ三"'" ,,.'ヘ rー‐ ''''''"
`, i'''ニ'" ,. -‐'" `/
ヽ ! i´ /
ノレ'ー'! / O
0751デフォルトの名無しさん
2014/07/14(月) 17:28:00.59ID:KGa9EEJehttp://qiita.com/dankogai/items/d63dfda25088165deed5
0752デフォルトの名無しさん
2014/07/14(月) 17:29:22.60ID:KGa9EEJe0753デフォルトの名無しさん
2014/07/14(月) 19:04:49.66ID:RZ62ioTLC#とか、Rubyとか、Googleは採用してませんが
0754デフォルトの名無しさん
2014/07/14(月) 20:17:16.27ID:DuRBXQUq(そこ、笑うとこやで、兄やんっ)
0755デフォルトの名無しさん
2014/07/14(月) 20:20:50.32ID:xs99ZBfy俺に言うな。>>745をよく見なさいw
0756デフォルトの名無しさん
2014/07/14(月) 21:51:45.56ID:whZx8tfPもしくはマルチ禁止とか無茶苦茶な規約を発動して潰すはず
0757デフォルトの名無しさん
2014/07/14(月) 21:55:50.47ID:xs99ZBfy0758デフォルトの名無しさん
2014/07/14(月) 22:02:32.94ID:JENp6B270759デフォルトの名無しさん
2014/07/15(火) 01:13:25.82ID:micTd99E0760デフォルトの名無しさん
2014/07/15(火) 01:15:01.52ID:wY3QqZWcjavaは?
0761デフォルトの名無しさん
2014/07/15(火) 06:09:34.87ID:G0sBDiLW0762デフォルトの名無しさん
2014/07/15(火) 09:54:28.35ID:X+1U4btAあれって実装コードがかぶっていたかららしい。
言語仕様が対象ではない
0763デフォルトの名無しさん
2014/07/15(火) 10:30:28.32ID:r2pgp0MyJavaのAPI仕様自体には著作権無いって判決が一審で出たんだけど
Oracleが控訴したら二審でこれが覆っちゃってちょっと大変なことになってる
API仕様に著作権あるってことで、このまま確定しちゃいそう
0764デフォルトの名無しさん
2014/07/15(火) 10:50:56.90ID:8APAVMM90765デフォルトの名無しさん
2014/07/15(火) 11:13:35.72ID:ySYgfKOJんなあほな。NFSにせよSolarisにしろAPIをオープンにするってのが、サンの戦略だったのに……
0766デフォルトの名無しさん
2014/07/15(火) 12:00:46.30ID:og7aDLMg0767デフォルトの名無しさん
2014/07/15(火) 12:05:19.99ID:AlmaazeQ0768デフォルトの名無しさん
2014/07/15(火) 12:11:56.15ID:j3zFGvRv0769デフォルトの名無しさん
2014/07/15(火) 12:23:24.29ID:7MWYl2Sv0770デフォルトの名無しさん
2014/07/15(火) 13:15:50.71ID:YSAyaOR/↓
じゃあ、俺が改変して使いやすくしたのおまえよりいっぱい配るわ
↓
ちょ!おま…
だいたいこんな
0771デフォルトの名無しさん
2014/07/15(火) 13:39:50.89ID:4zlWl4sH0772デフォルトの名無しさん
2014/07/15(火) 14:14:00.73ID:zrHbAgn8黙れ小僧、お前にサンが救えるか
0773デフォルトの名無しさん
2014/07/15(火) 14:17:28.25ID:r2pgp0My0774デフォルトの名無しさん
2014/07/15(火) 14:24:13.13ID:ySYgfKOJJavaがもっと最前線で熱い言語になってただろう
0775デフォルトの名無しさん
2014/07/15(火) 15:05:37.10ID:crlBJ/uWここなんのスレだっけ
0776デフォルトの名無しさん
2014/07/15(火) 17:40:26.17ID:AlmaazeQ0777デフォルトの名無しさん
2014/07/16(水) 00:17:19.37ID:zFOkDjlK0778デフォルトの名無しさん
2014/07/16(水) 11:06:00.57ID:CCnp7m7Gそこはぜひgolangで。
並列処理が書きやすいので、GUIなアプリって結構向いてると思うんだけどなぁ。
0779デフォルトの名無しさん
2014/07/16(水) 12:11:04.92ID:dtGU31iT■ このスレッドは過去ログ倉庫に格納されています