トップページ⇒tech
1001コメント338KB

Swift part2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/06/11(水) 14:42:15.02ID:+13mKJ0Z
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

Apple 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/
0573デフォルトの名無しさん2014/07/08(火) 23:00:38.34ID:IDQCR4dM
Swiftの仕様すら固まっとらん段階なんだから黙ってバグレポート出して正座して待っとけよ
0574デフォルトの名無しさん2014/07/08(火) 23:06:19.28ID:1LGDIph+
2ちゃんで愚痴ってこんなに絡まれるとは思わんかったわ
しかもID違う人からw
0575デフォルトの名無しさん2014/07/08(火) 23:12:13.29ID:vanWZNwy
>>574
愚痴るのはいいけど、ベータ版ってこんなもんだよ。
プログラミング言語って10年以上掛けて成熟していくもんだけど、Swiftはもっと短い時間で成熟させようとしてるしね。
0576デフォルトの名無しさん2014/07/08(火) 23:12:18.25ID:i4Jr+ODi
ちょっと様々な言語に詳しい人にお聞きしたいんですが、Swiftの言語としての独自仕様ってどういうのがあります? 
OptionalValueはSwiftオリジナルなのかなーとか思ってるんですが。
0577デフォルトの名無しさん2014/07/08(火) 23:13:10.92ID:IDQCR4dM
>>574
自分から絡みついてんじゃん
0578デフォルトの名無しさん2014/07/08(火) 23:20:06.73ID:1LGDIph+
面白いからちょっとテストw

>>567 バーカ
>>570 氏ね
>>572 必死だなw
0579デフォルトの名無しさん2014/07/08(火) 23:20:49.20ID:vanWZNwy
>>576
optionalは普通に他言語にあるでしょ。Scalaとか
Javaでさえ(ライブラリレベルだけど)サポートしてるしねぇ
0580デフォルトの名無しさん2014/07/08(火) 23:26:06.92ID:hjz6cmzU
>>578
なんか余裕ぶっているのが哀れw明らかにそうじゃなさげなのが見え透いているだけに
いままでの言動から浅さがわかるんだけど、本人にはわからないんだろうなというのは、わかっていたらその浅はかさは出ないだろうからな
というテストに対する反応はどう?
0581デフォルトの名無しさん2014/07/08(火) 23:28:29.13ID:vanWZNwy
でも、SwiftのOptionalsはわかりやすくていいよね。
Rubyの述語のメソッド末尾に?付けたりするセンスと同じでいい感じ。
0582デフォルトの名無しさん2014/07/08(火) 23:29:01.66ID:1LGDIph+
あれw もしかして3回線持ち?
0583デフォルトの名無しさん2014/07/08(火) 23:29:52.59ID:1ZFygV1q
>>581
末尾に?を付けるのはC#のNullable Typesをパクっただけ
0584デフォルトの名無しさん2014/07/08(火) 23:32:41.22ID:vanWZNwy
>>583
知ってる。でもあれはOptionalsとは意味合いが違うじゃん?
0585デフォルトの名無しさん2014/07/08(火) 23:36:04.29ID:hjz6cmzU
>>582
ぼくに反するヤツなんてそういるわけなーいって?
いや、違うよ。俺はID:hjz6cmzUだけだよ。可哀想に、なお哀れ
もうよしたほうがいいよw
0586デフォルトの名無しさん2014/07/08(火) 23:40:14.82ID:1LGDIph+
あれ? ちょっと文体変わった?
0587デフォルトの名無しさん2014/07/08(火) 23:41:21.19ID:hjz6cmzU
可哀想に…
0588デフォルトの名無しさん2014/07/08(火) 23:43:13.81ID:1LGDIph+
しかし、一匹しか釣れなかったな…
0589デフォルトの名無しさん2014/07/08(火) 23:43:26.78ID:IDQCR4dM
自意識過剰っつうか自己愛強過ぎっつうか
0590デフォルトの名無しさん2014/07/08(火) 23:49:43.10ID:hjz6cmzU
ただの底が浅いヤツでしかなったけどなあ。終始一貫してw
0591デフォルトの名無しさん2014/07/08(火) 23:50:52.87ID:3Wa9eLVl
>>584
lisp由来
0592デフォルトの名無しさん2014/07/08(火) 23:51:46.48ID:1LGDIph+
飽きたな
そろそろ寝るか
0593デフォルトの名無しさん2014/07/09(水) 00:42:32.08ID:lknlO7J2
>>576
Swift の Optional の概念は、
ML や Haskell といった静的型付けな関数型言語では一般的なもの
たとえば ML族(SML/OCaml/F#) では Option 型と呼ばれ、
NONE または SOME x という値を持つ
Haskell や Scala では Maybe 型と呼ばれ、
Nothing または Just x という値を持つ

ただし、この Optional という概念は Java や C# のような非関数型言語でも
実装できるけど、それをAppleが(関数型言語ではない) Swift における
言語仕様の一部として公式に取り入れたことは、特筆すべきことだ

あと Apple 固有の事情ではあるけれど、動的型付けと静的型付けを
混在できる(混在させざるをえなかった?)のは、Swift の独自仕様だと思う
0594デフォルトの名無しさん2014/07/09(水) 00:51:11.73ID:V9xUyLw3
Java8はOptionalクラスをサポートして、Stream APIっていうので活用してる
まあ、言語仕様自体に組み込まれてるSwiftの方が使い勝手は良さそうだよね
0595デフォルトの名無しさん2014/07/09(水) 00:53:11.40ID:sDYfLtkS
型付けが混在してると言えばgroovyやdart
0596デフォルトの名無しさん2014/07/09(水) 00:55:32.61ID:sDYfLtkS
そう言えばkotlinのnullable型が文法含めてswiftと同じだったかも
0597デフォルトの名無しさん2014/07/09(水) 00:58:48.23ID:SDA1RKlK
mainが無い所は、スクリブトなどの軽量言語に似てるし、デバッグ環境も含めて動的な要素も含んで作られてる様に見える。
ターミナル上でインタプリタlikeに動くのも特筆に値するのでは?
0598デフォルトの名無しさん2014/07/09(水) 01:01:46.20ID:sDYfLtkS
ターミナル上でインタプリタっぽく動くのはreplって名前で大昔からあるよ
0599デフォルトの名無しさん2014/07/09(水) 01:20:33.77ID:D+h9bFI0
遠い遠い太古の昔、まだt-rexが地上の王者として君臨していた頃、terminalの奥深くひっそりと、replはその影を潜めておった。
0600デフォルトの名無しさん2014/07/09(水) 01:20:39.12ID:lknlO7J2
>>594
おぉ Java でも対応されたんだ、知らなかった、ありがとう

というか NullPointerExcption の問題(いわゆる ヌルポ)は、
大昔から指摘され続けていた
これは Java5 で総称型がサポートされた時点で解決できていたハズなのに、
ようやく..... といった感じがする(ラムダ式を待つ必然性は無かったはず)
0601デフォルトの名無しさん2014/07/09(水) 01:31:07.79ID:CAl1OnKc
C#のNullableも言語仕様じゃん
0602デフォルトの名無しさん2014/07/09(水) 02:37:40.83ID:V0tl3oDx
Swiftの任意型ってObjective-Cのnilと同じようなもんじゃないの?
0603デフォルトの名無しさん2014/07/09(水) 04:45:29.09ID:ot7dWtX9
Unmanaged<CGImage>!からUIImageを作成する方法を教えて下さい。
以下の様なコードを書いてみましたが、img2,img3はmissing argumentと言われビルドできず、
filename()では一応ファイル名がとれているのですが、img1はnilが帰ってきてしまいます。
リファレンスを見てinit(CGImage CGImage: CGImage!)を使えるかと思ったのですが…

var img1 = UIImage(named:r.defaultRepresentation().filename())
var img2 = UIImage(CGImage:r.defaultRepresentation().fullResolutionImage())
var img3 = UIImage(CGImage:r.thumbnail())

xcodeはbeta3を使用していて、実行はシミュレータでの結果になります。

-- 該当部分の全コード(改行を減らすため一部{}等をまとめています)
@IBAction func onClick(sender : AnyObject) {
let block2: ALAssetsGroupEnumerationResultsBlock =
{(r,i,s) in
if(r) {
var img1 = UIImage(named:r.defaultRepresentation().filename())
var img2 = UIImage(CGImage:r.defaultRepresentation().fullResolutionImage())
var img3 = UIImage(CGImage:r.thumbnail())
println("¥(r.defaultRepresentation().filename())")
}}
let block1:ALAssetsLibraryGroupsEnumerationResultsBlock =
{(g,p) in if(g) {g.enumerateAssetsUsingBlock(block2)}}

let l = ALAssetsLibrary()
l.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupAll)
,usingBlock:block1
,failureBlock:{(error) in println("Problem loading albums: ¥(error)")})}
0604デフォルトの名無しさん2014/07/09(水) 08:58:16.58ID:FvPT3vrY
OptionalがあってもEitherがないと片手落ち感ある
まぁクリスは1.0出した後にやるかもしれなくもないみたいなこと言ってたけど
0605デフォルトの名無しさん2014/07/09(水) 11:23:39.40ID:NzqKfchI
結構変わったなぁb3
0606デフォルトの名無しさん2014/07/09(水) 11:43:37.58ID:L1cL1sUs
動的言語ライクに使えることを目指すのなら
PythonやGolangみたいに標準ライブラリが充実しててほしいんだけど、
Cocoaとかいう中途半端なものがあるからなぁ
0607デフォルトの名無しさん2014/07/09(水) 12:24:45.48ID:V4w6/u2b
>>606
動的型付けとライブラリの充実度に関係はないだろ。
あと、Cocoaはアプリ用のライブラリだ。
0608デフォルトの名無しさん2014/07/09(水) 12:27:24.80ID:BA14jeAU
>>606
> 動的言語ライクに使えることを目指すのなら

別に目指してないと思うけど。
CocoaのAPIを直接叩けて文法的に洗練されたものを作りたかっただけだろうから、
動的束縛もその限度で使えれば十分でしょ。
0609デフォルトの名無しさん2014/07/09(水) 12:37:18.51ID:D+h9bFI0
>>606
一介の開発者風情がApple様のお作りになられたSwiftに文句を垂れるなど100万年早いわ
提供されるものを有り難く使えばいいんだよ
あと見つけたバグはちゃんと報告しとけよ
それがお前に出来るせめてもの恩返しだからな
0610デフォルトの名無しさん2014/07/09(水) 12:38:43.44ID:zxLhieEh
静的言語はオブジェクト指向的な動作をしないからイライラするんだよね。
Aを継承してBを作って
Bの変数に入れてBのメソッド起動すればBのメソッドが実行されるのは当たり前だけど
Aの変数に入れて同じメソッドを実行するとなぜかスーパークラス(A)の方が呼ばれるという。
あれ?お前Bじゃなかったん?っていう。
実行オーバーヘッド無くすために、それが実際に何のオブジェクトかはガン無視して、変数の型で呼ばれる関数が決まるんだと。
なのでObjective-Cのプロトコルみたいなことができない。
むかしC++でそういう訳わからない目にあって、それ以来、静的言語が大嫌いになった。
0611デフォルトの名無しさん2014/07/09(水) 12:43:13.50ID:7UJfLcS8
>>610 さすがにそれは無ぇーわw もう一回勉強してこい
0612デフォルトの名無しさん2014/07/09(水) 13:23:31.25ID:9OrXBMkc
SwiftのOptionalってライブラリで定義されている型じゃなくて言語組み込みの機能なの?
0613デフォルトの名無しさん2014/07/09(水) 13:26:44.93ID:7UJfLcS8
そりゃそうだろ
0614デフォルトの名無しさん2014/07/09(水) 13:35:41.85ID:SDA1RKlK
>>612 そうだから使い道も大きい。
0615デフォルトの名無しさん2014/07/09(水) 14:21:22.52ID:D+h9bFI0
Swiftもyacc/lexで作られてんのかね?
0616デフォルトの名無しさん2014/07/09(水) 14:24:28.53ID:xN5CObL0
Swiftが参考にしたというRustとかHaskellでは言語組み込みの機能じゃなく、
標準ライブラリで定義されている普通の型なんだけど、
SwiftでそうなっていないのはSwiftのユーザ定義型の表現力が低いのか、
ほかの言語のOptional型より高機能なのか、
ライブラリでできることはライブラリでやるという思想がないのか。
どれなんですか?
0617デフォルトの名無しさん2014/07/09(水) 14:29:12.89ID:1SU4YkH/
>>610
お前の知識がないだけ
オーバーライドでググれ
0618デフォルトの名無しさん2014/07/09(水) 14:31:02.75ID:D+h9bFI0
>>616
DustとかHaskellって、IntやFloatもOptionalに出来るの?
0619デフォルトの名無しさん2014/07/09(水) 14:46:50.01ID:T0c7+k+3
スバルに謝罪
0620デフォルトの名無しさん2014/07/09(水) 14:48:24.45ID:WHgli7Oz
スズキじゃなかったっけ
0621デフォルトの名無しさん2014/07/09(水) 15:03:45.03ID:SDA1RKlK
>>615 LLVMで作ってる。 
>>616 標準だからこそ、コンパイル時に矛盾を発見できるしARCでプロパティーの監視を出来る。
ライブラリでやったらこう言うルールを適用する事が出来なくなる。
バグが少なくなるしコーディングも楽になる。
0622デフォルトの名無しさん2014/07/09(水) 15:09:38.96ID:V9xUyLw3
>>621
おまえ半端な知識でゴミな書き込み撒き散らしすぎ
プログラミング言語について語るのにyacc/lexが何なのか知らないとか有り得ないだろ
0623デフォルトの名無しさん2014/07/09(水) 15:15:33.69ID:BpA+NCPK
>>617
virtualがデフォじゃない時のC++のこと言っているんだろ
virtualがデフォでない時のC++をあげつらって、それが全てと言うのもなんだと思うが
0624デフォルトの名無しさん2014/07/09(水) 15:17:53.48ID:D+h9bFI0
>>621
>>>615 LLVMで作ってる。

SwiftのソースコードからLLVMの中間言語へ落とし込む構文解析処理のつもりだったんだけど、
LLVMに構文解析ジェネレータ的なツールがあるってこと?
0625デフォルトの名無しさん2014/07/09(水) 15:31:29.83ID:D+h9bFI0
ちょっと調べてみたけど、
SwiftもClang使ってるとしたら、どうやらハンドメイドらしいね

ttp://stackoverflow.com/questions/6319086/are-gcc-and-clang-parsers-really-handwritten
0626デフォルトの名無しさん2014/07/09(水) 15:32:19.69ID:k93gpKQE
OK: var n = Array<Int>.Element(1)
NG: var m = Array<Int>.GeneratorType.Element(1)
0627デフォルトの名無しさん2014/07/09(水) 15:59:26.87ID:7c6OdUYP
>>626
なぜかこれは通る
Array<Int>.SliceType.Element(1)
0628デフォルトの名無しさん2014/07/09(水) 16:21:15.19ID:SDA1RKlK
>>625 どこで見たか忘れたが、clangに実装してるみたいなのを見た覚えがある。
Swing コンパイラのパラメータにclang module のcache pathを指定するオプションが有るから、少なくともclang moduleは使ってるみたい。

Swingは、至る所で型類推を使ってるから、yacc/lexでは無理。
Appleがclangの成果を使うのは自然。
0629デフォルトの名無しさん2014/07/09(水) 16:35:05.29ID:7c6OdUYP
当然Clangベースだろうけど、
型推論は意味解析部の担当だから、yacc/lex は関係ないべ
0630デフォルトの名無しさん2014/07/09(水) 16:35:43.55ID:13pwJSHl
Beta3入れてみたけど、配列の型宣言、例えば
Array<Int> のシンタックスシュガーが Int[] だったのが [Int] に変更されてる。
この書き方はキモい。
0631デフォルトの名無しさん2014/07/09(水) 16:38:26.85ID:FvPT3vrY
http://i.imgur.com/PkgHr1y.png
0632デフォルトの名無しさん2014/07/09(水) 16:41:30.17ID:c4TpZOQ0
>>628
なんでJavaでGUIしようぜ、みたいな話になってんだよw
0633デフォルトの名無しさん2014/07/09(水) 16:45:55.08ID:ELx5bFYc
>>626
バグっぽい
0634デフォルトの名無しさん2014/07/09(水) 17:09:08.81ID:YSvBHpPH
>>630
俺は合理的だと思うぜ
辞書の糖衣構文を[Int: String]にしたら、配列を[Int]にするのは自然だろ?
0635デフォルトの名無しさん2014/07/09(水) 17:32:00.97ID:YSvBHpPH
あと、値の文法と同じなのもよい
[0] -> [Int]
["key": "value"] -> [String: String]

Haskell辺りの受け売りなんだろうか。
0636デフォルトの名無しさん2014/07/09(水) 17:34:11.31ID:ICY9ltLE
キモいと思ったが、なるほど。辞書との類似で考えると自然に見えるな。
0637デフォルトの名無しさん2014/07/09(水) 17:47:42.60ID:pbWvCCMu
>>618
できる。
Rustの場合、メモリ上の表現はタグ+数値になるから、サイズはただのintよりは大きくなる。
Haskellは知らない。
Swiftはどうなるの?

>>621
ARCのプロパティ監視の話は良くわからないけど、
SomeかNoneかのチェック行うのを強制する以上の機能がSwiftにはあるという理解でよい?
0638デフォルトの名無しさん2014/07/09(水) 17:56:08.44ID:FvPT3vrY
Optionalは標準ライブラリでただのenumとして定義されてる
ただ、SomeType? って書き方とか、if let でバインディングしたりとかの
シンタックスシュガーが用意されていて、そういう意味で言語組込み的

自分で enum MyOpt<T> { case Some(T), None } て感じで同等のものを書けるけど
標準のOptionalほど手軽に使えるようにはならんというだけ

ID: SDA1RKlK は言ってること無茶苦茶なので聞くだけ無駄
0639デフォルトの名無しさん2014/07/09(水) 18:04:04.07ID:5irmvKQ3
なんだかわからんがム板のswiftスレと相互に書き込みを勝手コピペする
あたまおかしいのがいるから気をつけたほうがいいぞ
0640デフォルトの名無しさん2014/07/09(水) 18:05:15.10ID:IWdr99Ar
おまえだよ。
0641デフォルトの名無しさん2014/07/09(水) 18:05:54.37ID:SDA1RKlK
>>638
“you must declare every weak reference as having an optional type.”

抜粋: : Inc、Apple. “The Swift Programming Language.” Apple Inc., 2014-07-03T07:00:00Z. iBooks.
この素材は著作権で保護されている可能性があります。

iBooks Storeでこのブックをご覧ください: https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewBook?id=881256329
0642デフォルトの名無しさん2014/07/09(水) 22:16:33.41ID:ZBnUrNfy
>>638
なるほど。
nullable型みたいな書き方をシンタックスシュガーとして提供してるのは素敵ですね。
0643デフォルトの名無しさん2014/07/09(水) 23:16:05.10ID:9bZjyImW
本家のnullableもそんな感じのシンタックスシュガーだけどね
0644デフォルトの名無しさん2014/07/09(水) 23:41:14.39ID:YYUTfgKI
Swiftのenumがすごいんですけど、これも他の言語にあるんでしょうか?

SwiftyJsonからの抜粋なんですが

enum JSONValue {
case JNumber(NSNumber)
case JString(String)
case JBool(Bool)
case JNull
case JArray(Array<JSONValue>)
case JObject(Dictionary<String,JSONValue>)
case JInvalid(NSError)
/*省略*/

みたいに定義できて要素別にいろんなオブジェクトを持たせられられたり

var first: JSONValue? {
switch self {
case .JArray(let jsonArray) where jsonArray.count > 0:
return jsonArray[0]
/*省略*/
}
}

}

switch文のcaseの中にwhere区を入れて条件追加指定できたりとか。
こんなの初めて見ました。
0645デフォルトの名無しさん2014/07/09(水) 23:52:00.81ID:9bZjyImW
パターンマッチといって、関数型言語では非常に一般的だよ
Swiftのそれに一番似てるのはScalaかな
0646デフォルトの名無しさん2014/07/09(水) 23:54:49.87ID:sDYfLtkS
rustのenumが名前も機能も同じでパターンマッチは上の通り
0647デフォルトの名無しさん2014/07/09(水) 23:55:12.30ID:V9xUyLw3
Haskellとかの代数的データ型みたいなもんなのか
0648デフォルトの名無しさん2014/07/10(木) 00:00:44.87ID:VGRzIMNM
OCamlの型はこのenumそのものだよ
0649デフォルトの名無しさん2014/07/10(木) 00:34:36.38ID:OizG2bfl
またお前らのくだらん言語自慢か
言語ヲタ集がプンプンするスレだな
0650デフォルトの名無しさん2014/07/10(木) 00:42:24.85ID:0msrkDWD
言語に興味なくても、関数型1つくらいはかじるだろ
0651デフォルトの名無しさん2014/07/10(木) 00:55:50.19ID:Y0rbSAXS
>>644
データ型の一つに直和型というものがある
・直和とは集合を互いに交わりの無い部分集合へ分割することを意味する[数学用語]
・Haskell では代数型と、教科書「型システム入門」ではバリアント型とも ....)
・ 他にレコードやタプルは直積型に分類される
このSwift のswitch文は、この直和型を有効利用するために導入された構文になる
そして、他の人達(>>645-648)が指摘しているように、静的型付けな関数型言語の世界では、
すでに直和型とパターンマッチによる多分岐はありふれた存在になっている

で、ここからが本題なんだけど、直和型というのは関数型言語の専売特許ではなくて、
Pascal(Delphi)におけるレコード型の可変フィール(variant field)や
Adaの可変レコード型(variant record type)として、手続き型では古い時代から知られていた
ところがOOP言語が世の常識となるにつれ、直和型の概念が多くのプログラマから忘れられた
さて、ここで Apple は(関数型言語ではない) Swift で直和型を復活させたことになるのだけど、
これが意味するものは何か、近未来の新言語設計にどんなインパクトを与えるのか.....
なかなか興味深い話題だと思う
0652デフォルトの名無しさん2014/07/10(木) 01:07:29.71ID:rjypBW2y
直和型なんてHaxeにもあるしな〜にがAppleは復活させただ死ね林檎信者
0653デフォルトの名無しさん2014/07/10(木) 01:22:21.83ID:O9lWsLgo
そろそろSwiftの話をしようか
絶賛コメだけじゃなく冷静な批評でもいいのよ
0654デフォルトの名無しさん2014/07/10(木) 01:24:54.21ID:9na9WfzA
たぶん冷静な批評なんて無理。>>652は特に
0655デフォルトの名無しさん2014/07/10(木) 02:33:50.13ID:BC+DaKWG
この言語については本当に
「そんなにAppleが憎いなら使わなくていいのよ?」
で、あたまおかしな人を即パージできるからな。
0656デフォルトの名無しさん2014/07/10(木) 03:28:17.54ID:E7hqdO7D
Swiftならではの良い所ってのが皆無な時点で
エポックメイキングな言語とはいえないよね
他の言語を参考に適当に混ぜてちょっとだけ特色出してみましたw
的な言語
そういう意味では、MSのTypeScriptや、GoogleのGo言語を後追いしたにすぎないね
0657デフォルトの名無しさん2014/07/10(木) 04:25:12.25ID:maMZBDnX
定評のある言語仕様だけを取り入れてきれいにまとめ上げてくれればそれでよい
0658デフォルトの名無しさん2014/07/10(木) 05:51:18.93ID:D385SCPI
良い所取りして、Objective-Cの全財産が使える言語は他に無い。

誰がなんと言おうと、Appleにとって最善の言語となった。
終わり
0659デフォルトの名無しさん2014/07/10(木) 11:17:45.53ID:Z+u99TiJ
CarbonがCocoaになってPowerPCがIntelになったように、
こんどはARMになってCocoaが葬り去されるんですね楽しみです
0660デフォルトの名無しさん2014/07/10(木) 11:57:24.05ID:Z+u99TiJ
好き勝手な演算子を定義できる隠し機能だとさ
https://gist.github.com/mattt/f457625af116721ffb57
0661デフォルトの名無しさん2014/07/10(木) 12:08:09.28ID:WUOyQ2ab
>>659
Cocoaはそのままだろ
0662デフォルトの名無しさん2014/07/10(木) 12:10:20.82ID:jxZKmF3s
>>661
APIと言語の違いが分からないような人に近付いちゃダメ。
0663デフォルトの名無しさん2014/07/10(木) 12:25:15.94ID:Z+u99TiJ
SwiftにあわせてAPIも一新みたいな冗談のつもりだったけど..まあいいや
0664デフォルトの名無しさん2014/07/10(木) 12:39:58.73ID:xv3o/8yi
CarbonとC言語、Foundation/Cocoa/etc.とObjective-C
現実的には言語とAPIは密接に関係してるから
そのうちSwiftネイティブなAPIセットを作るんじゃねというのは
あながちおかしなこと言ってるわけでもないと思う
0665デフォルトの名無しさん2014/07/10(木) 12:41:47.50ID:xv3o/8yi
そんなこと起きないだろうけど
0666デフォルトの名無しさん2014/07/10(木) 13:08:56.63ID:GRhY2avW
Swiftでnamespaceついたし、プリフィクスの無い世界に行きたい
それにSwiftから見たCocoaは
Implicitly Unwrapped Optionalだらけの魔界だ
真にType safetyな世界に行くには、1からAPIを作り直すほか無いだろう
0667デフォルトの名無しさん2014/07/10(木) 13:56:03.17ID:xv3o/8yi
ダウンキャストの危険性を示すために as じゃなくて、as! にしてほしい
0668デフォルトの名無しさん2014/07/10(木) 14:06:43.59ID:o0OR8ld+
>>667
as?ではなくas使う時点で危険と認識すればよし
0669デフォルトの名無しさん2014/07/10(木) 16:18:30.34ID:NUwbDbLi
>>664
CoreFoundationはどこに位置するの?
0670デフォルトの名無しさん2014/07/10(木) 16:33:09.15ID:U0c3Ed3K
イニシャライザ周りはいろいろと配慮されてるんだね
convenient initとdesignated initが言語仕様として区別されるとか
super.init を呼びわすれるとコンパイルが通らないとか
0671デフォルトの名無しさん2014/07/10(木) 16:43:07.44ID:lVukJkUe
>>660
数学記号のこと言ってるなら

https://devforums.apple.com/message/1000934#1000934
> It's not documented yet, but the set of allowed operator characters
> includes 'math' and 'symbol' characters in the Unicode BMP,
> and operator characters can be augmented with combining characters.
> The full set of supported characters will be documented in one of the following seeds.
0672デフォルトの名無しさん2014/07/10(木) 16:49:23.73ID:jYdaLKAG
>>671
うんこの絵文字とかはダメなのか
しかし、こんな機能必要かねぇ
■ このスレッドは過去ログ倉庫に格納されています