2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

let s: プログラミング言語? = Swift[2]

1 :名称未設定:2014/08/23(土) 09:55:25.03 ID:vQdcSMFci.net
Appleの新言語Swiftについて語りましょう

Apple Developer
ttps://developer.apple.com/swift/
Welcome to Swift
ttps://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/

書籍iBooks:
The Swift Programming Language
ttps://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
Using Swift with Cocoa and Objective-C
ttps://itunes.apple.com/jp/book/using-swift-cocoa-objective/id888894773?mt=11
書籍の形にはなってないけどドキュメント
The Swift Programming Language
ttps://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
ttps://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Swift Standard Library Reference
ttps://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/

Swift Blog
ttps://developer.apple.com/swift/blog/
Resources (Xcode 6が無料でダウンロードできる)
ttps://developer.apple.com/swift/resources/

関連スレ
Swift part3
http://peace.2ch.net/test/read.cgi/tech/1406083608/

前スレ
プログラミング言語Swift
http://anago.2ch.net/test/read.cgi/mac/1401736921/

71 :名称未設定:2014/08/27(水) 11:24:52.42 ID:SBZWoHoj0.net
>>70
suffixes.substringToIndex(advance(suffixes.startIndex, 2))
エラー内容や補完の型情報ちゃんと読めよ
IntじゃなくてString.Indexが要求されてる

ちなみにこれでもいい
(suffixes as NSString).substringToIndex(2)

"ABCD".substringToIndex(2)
こっちがOKなのはsubstringToIndex(Int)を読んでるからリテラルをNSStringと型推論してるから

72 :名称未設定:2014/08/27(水) 11:30:50.18 ID:4EKTwo0Y0.net
解決
In beta 4, Swift's String.Index handling changed yet again -- you now can't supply an Int when a String.Index is expected.
The way to handle it is by creating the String.Index you need using the advance method:

var suffixes ="ABCDEFGHI"
var ix = advance(suffixes.startIndex, 2)
suffixes.substringToIndex( ix ) // こうしないといけないらしい "AB"

suffixes[2] // これも使えなくなって
suffixes[ix] // advance を使わないといけないらしい "C"

//rangeもそう
let startIndex = advance(suffixes.startIndex, 3)
let endIndex = advance(startIndex, 4) //startIndex+4 > 7
let range = startIndex..<endIndex // same as let range = Range(start: startIndex, end: endIndex) 3..<7
suffixes[range] // "DEFG"

こんなの変更履歴に書いていないよ 何処に書いてある?
めんどくさ過ぎる。 早くすっきりした仕様で整理してほしいよ

73 :名称未設定:2014/08/27(水) 11:32:29.76 ID:Le72VMEU0.net
これもダメなのね

let s = "ABCD".substringToIndex(2)
s.substringToIndex(1) ← エラー

気が利くというか利かないというか...

74 :名称未設定:2014/08/27(水) 11:34:08.77 ID:Nfqu/a7Wi.net
スナップショットで見れば別に困らないわけで
仕様変更があるベータを使うのは初めてか?力抜けよ

75 :名称未設定:2014/08/27(水) 11:42:33.55 ID:Le72VMEU0.net
了解で〜す \(^o^)/

76 :名称未設定:2014/08/27(水) 11:47:38.68 ID:4EKTwo0Y0.net
>>71 エラー情報を見ても String.Index 型をどうやって作ればよいかが解らなくて
Swiftマニュアルに何も書いていないからね StringはSwiftの型なのに

表面ではStringからNSStringをシームレスに使えると言ってて細かな所で2つに分かれていたりすると訳が解らなくなる

77 :名称未設定:2014/08/27(水) 12:13:23.56 ID:Nfqu/a7Wi.net
>>76
Appleの言うことを鵜呑みにするから
適当に疑って使わないと馬鹿になる

78 :名称未設定:2014/08/27(水) 12:17:15.79 ID:Nfqu/a7Wi.net
>>75
>>74>>73宛だよ
あんたに言ってんじゃないよw

79 :名称未設定:2014/08/27(水) 13:34:14.23 ID:16tGPY700.net
Xcode6がbeta5からbeta6になって治ったバグ

1 * 0.99 //0 (beta5バグ) 0.99 (beta6修正)
0.99 * 1 //0.99

1 + 0.99 //1 (beta5バグ) 1.99 (beta6修正)
0.99 + 1 //1.99


ところで、現時点beta6での仕様だが、
リテラル(1.0とか、"abc"とか文字で表現された定数値)の扱いが
NSNumberクラス型(正確にはクラスクラスタ)やNSString型になっていて、

一方で変数の扱い var s = "abc"や var i = 1 では、
String型やInt型に型付けされるので慣れないと混乱がある。

上のi = 1を使った
var j = i * 0.99 // jは0となり、こちらは「バグじゃなく仕様です。Xcode6 beta6時点。」となっている。
まず 変数iで左辺がInt型に型推論され、
それに従って0.99のNSNumber型のIntValueである0が適用され、1 * 0が0になるため。


Swiftの強力な型推論は、スクリプト言語のような(見た目も)易しい記述と
ネイティブコードの高速実行(実行中に変数の型チェックをしないで済む)を両立させている。
十数種類もあるメジャーなプログラミング言語候補の中では、
これを両立しているのが今のところSwiftしかない、たぶん。

ただ、上のように、Objective-Cとの連携も絡めた文法の調整などで、まだ流動的な部分はありそう。

80 :名称未設定:2014/08/27(水) 13:37:46.56 ID:16tGPY700.net
>>79
x まず 変数iで左辺がInt型に型推論され
o まず 変数iで右辺がInt型に型推論され

総レス数 982
220 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★