トップページ⇒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/
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
うんこの絵文字とかはダメなのか
しかし、こんな機能必要かねぇ
0673デフォルトの名無しさん2014/07/10(木) 16:56:56.80ID:rqwHIJIb
>>660
ああ、当然こういうことも出来るのか。すげえな楽しいわ。
0674デフォルトの名無しさん2014/07/10(木) 19:09:01.95ID:XIjKZonp
こういうのが楽しいのは作ってる本人だけ
0675デフォルトの名無しさん2014/07/10(木) 19:23:27.83ID:vGHCaEiD
絵文字使えるとかもなんなの?
理由がわからん
0676デフォルトの名無しさん2014/07/10(木) 19:25:27.65ID:rqwHIJIb
実用性は兎も角、教育的に使える
0677デフォルトの名無しさん2014/07/10(木) 19:27:00.67ID:jYdaLKAG
http://codepad.org/Ya07v8AL
NSInvocationを使ってる NSUndoManager がふつうに使えたので安心した
0678デフォルトの名無しさん2014/07/10(木) 23:13:49.04ID:Y22Tg+si
C++でさえ日本語いけるのに何を今更

#define 判定 if
#define 次の間繰り返す while
#define 戻す return
#define 次の別名を作る typedef

次の別名を作る void 無し;
次の別名を作る char 文字;
次の別名を作る int 整数;
次の別名を作る float 単精度浮動小数
次の別名を作る double 倍精度浮動少数

#define 短い short
#define 長い long
#define 符号付き signed
#define 符号無し unsigned
#define 入出力用 volatile
#define 不変 const
#define 可変 mutable
#define 穏健 static
#define 名前空間 namespace
#define 使う using
0679デフォルトの名無しさん2014/07/10(木) 23:25:09.13ID:P/v5Wc4f
Swiftの新規性を発見したら懸賞金でも出るのか
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:D385SCPI
>>679 記事か本に書くネタ探しでしょ。
0682デフォルトの名無しさん2014/07/11(金) 00:29:23.34ID:aG0lM3e/
>ImplicitlyUnwrappedOptionalを強いて日本語に訳すとしたら暗黙的アンラップオプショナルといった具合でしょうか。

クソワロタ。カタカナにしただけじゃねぇか
0683デフォルトの名無しさん2014/07/11(金) 01:01:57.33ID:RRV/Pxnb
暗黙の裸体任意型で良いんじゃね。
0684デフォルトの名無しさん2014/07/11(金) 01:20:04.92ID:CNdrj7fp
これエラーになるんだけど、バグだよね?
class 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
前スレ609でイニシャライザ(コンストラクタ)とメソッドと関数で呼び方違うのがきもいって書いたけど、
定義するときの書き方が違うだけで一応どの書き方でも書けるんだな
・イニシャライザ
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
SmalltalkやApple以外のObjective-CだったらObjectを作るときはInstaece creatonを
使う方法が一般的だったんだが、
なんで初期化子を直呼びする様になったんだ。
不便極まりない。
0687デフォルトの名無しさん2014/07/11(金) 08:17:27.29ID:PGMEzY6R
他の言語で一般的=正しい
という至極真っ当でAppleらしからぬ思想の言語だから
0688デフォルトの名無しさん2014/07/11(金) 08:17:36.76ID:mjjIchhE
>>680
>Int型に定義されているdescription()メソッド
description はメソッドじゃなくてプロパティ

>numStr.toInt().description() // エラー
エラーになるのはメソッドとして呼ぼうとしてるからで
numStr.toInt().description // これなら普通におk

>しかし、「.」の前に「?」を置くことでそれが可能になります。
>numStr.toInt()?.description() // Some "134"
だから .description() ってやってる限り無理だっつってんだろ


こいつコード動くか実際に試さず書いてるな
これだからクラスメソッドは信用できないんだ
0689デフォルトの名無しさん2014/07/11(金) 10:55:34.77ID:Lx3So7Yg
RT >686
0690デフォルトの名無しさん2014/07/11(金) 11:08:18.34ID:MKluaUW0
>>685で全部キーワードつけられることがわかったので、
そのときの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:CNdrj7fp
というかdescriptionは、IntにもOptional<T>にも定義されてるから
numStr.toInt()?.description でも
numStr.toInt().description でもコンパイル通るのよ
こんな特殊なものを例に上げたのがまちがい
0692デフォルトの名無しさん2014/07/11(金) 12:38:41.57ID:jyGo9R2g
>>684
http://stackoverflow.com/questions/24682387
0693デフォルトの名無しさん2014/07/11(金) 13:13:47.55ID:GkReUTvU
>>689
?
0694デフォルトの名無しさん2014/07/11(金) 19:39:36.60ID:jyGo9R2g
循環参照に怯えながらコードを書くのがApple開発の醍醐味
0695デフォルトの名無しさん2014/07/11(金) 22:48:06.60ID:izMO91L2
あるあるすぎる
0696デフォルトの名無しさん2014/07/12(土) 01:43:26.47ID:pUnCThIk
ためしにSwiftからシステムコール呼んだりしてみてるけど、
C言語との連携は結構よくできてるわ
0697デフォルトの名無しさん2014/07/12(土) 02:16:53.71ID:R5OtEg7d
>>696 簡単なサンプル上げて。
0698デフォルトの名無しさん2014/07/12(土) 02:42:46.74ID:pUnCThIk
>>697
mmapでバイナリファイル読む例
http://codepad.org/SQH29SHl
0699デフォルトの名無しさん2014/07/12(土) 06:52:52.22ID:Pi6lV0ru
適当なアルゴリズム実装してReleaseビルドしたらPythonより遅い
そんな馬鹿なと思ってプロファイラ見たら配列生成の内部ストレージ確保が
めっちゃ時間食ってるみたい
0700デフォルトの名無しさん2014/07/12(土) 08:44:15.61ID:7baV5ONW
タダでも使えるようになったな
0701デフォルトの名無しさん2014/07/12(土) 13:57:25.38ID:R5OtEg7d
公式Swiftブログからダウンロード出来る。
https://developer.apple.com/swift/blog/
0702デフォルトの名無しさん2014/07/12(土) 14:17:49.48ID:R5OtEg7d
SwiftでJavaScript
http://qiita.com/dankogai/items/052a3ad6f32d114a33fc
0703デフォルトの名無しさん2014/07/12(土) 19:20:58.04ID:xLJj+FnH
どーでもいいけどSwiftのソースファイルの拡張子って.swiftなのね…。
0704デフォルトの名無しさん2014/07/12(土) 19:24:00.64ID:BxmHv/rK
>>703
アップルはすぐ長ったらしい拡張子つけるよね。xcworkspaceとか。
てか、拡張子って3文字以下じゃないと駄目みたいな決まりなかったっけ?
swfとかでいいのにね。
0705デフォルトの名無しさん2014/07/12(土) 19:31:52.68ID:xLJj+FnH
>>704
確かに
.xcodeprojとかもあったな
ところで.swfは釣りっすか?w
0706デフォルトの名無しさん2014/07/12(土) 19:40:07.02ID:hFyjpWla
ショックウェーブフラーッシュ!
0707デフォルトの名無しさん2014/07/12(土) 19:54:39.63ID:6CFefVBC
拡張子3文字とかいつの時代のドザだよ
0708デフォルトの名無しさん2014/07/12(土) 19:56:25.31ID:CDlL/Wk/
>>704
それはMS-DOSというかその前のCP/Mの制限だな。ファイル名8文字+拡張子3文字。
UNIXなんかは元々ファイルシステム上では単一の文字列でピリオド以降を拡張子として解釈するだけだから特に制限はない。
昔のMacOSだとファイル名と別に4文字までのTYPEが付けられる。
0709デフォルトの名無しさん2014/07/12(土) 19:58:38.41ID:QxcUStnc
Microsoftも最近は普通にvcxprojつか長いの使うよ
■ このスレッドは過去ログ倉庫に格納されています