2015年05月

10
なんとなく、このブログのアクセス内訳を見てみた。
Windows7がむっちゃ多い。
Mac OS Xは自爆がけっこー含まれるはずw
 
このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

if文

let a = 10
if a == 10 {
    println("真")
} else {
    println("偽")
}

C言語と違って、if文のあとを()で書こう必要がない。ifのあとの式は、結果Bool型かBooleanTypeプロトコルを実装したクラスのオブジェクトでないといけない。

for文

let hoge = [1, 2, 3]

// 配列一覧表示
for var i = 0; i < hoge.count; i++ {
    println(i)
}

// 他の言語であるforerach文
for i in hoge {
    println(i)
}

// Range指定でループ
// 1〜5まで表示される
for i in 1...5 {
    println(i)
}
// 1〜4まで表示される。
for i in 1..<5 {
    println(i)
}

// 辞書を一覧表示
let hoge2 = [
    "key1":1,
    "key2":2,
    "key3":3,
]
for (key, val) in hoge2 {
    println("key=\(key),val=\(val)")
}

if文と同じように()が必要ない。

while、do〜while文

var n = 1
while n < 10 {
    println(n)
    n++
}

n = 1
do {
    println(n)
    n++
} while n < 10

C言語なんかといっしょ。if文と同じように()が必要ない。

あと、switchがあるが、またこんど。


このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

配列の宣言は、

let hoge:[Int] = [1, 2, 3]

となる。もちろん、:[Int]のところは、省略可能だ。
つまり、データ型を指定して変数を宣言する場合は、データ型を[]で囲ってやる。

空の配列は、

var hoge2 = [String]() var hoge3 = Array<String>()

のように宣言する。

配列への追加、参照は、

hoge2.append("hoge1")
hoge2.append("hoge2")

println(hoge2[0])    // "hoge1"と表示される。

こんな感じ。

辞書は、いわゆる連想配列のようなものだ。辞書の宣言は、

var hoge4:[String:Int] = [
    "Key1" : 10,
    "Key2": 20,
]
for (key,val) in hoge4 {
    println("key:\(key)=val:\(val)")
}
// key:Key1=val:10
// key:Key2=val:20
// って、表示される。

こんな感じだ。

空の辞書は、

var hoge5 = [String:Int]()
var hoge6 = Dictionary<String, Int>()

のように宣言する。

辞書の追加や表示は、

hoge5["key1"] = 10
hoge5["key2"] = 20

println(hoge5["key1"]!)   // "10"と表示される

こんな感じ。
hoge5["key1"]で返ってくる値は、Optional型なので設定される値を参照したい場合は、!を付ける必要がある。またキーが存在しない場合は、nilになる。


このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

変数宣言は、

var hoge = 10
var hoge2 = "hogehoge"

とする。今時の言語に多い型推論が働いてInt型になっている。

hoge = "hogehogehoge"

を行うとエラーになる。

型を明示的に指定するには変数名の後に、:と型を書く。

var hoge3:String
var hoge4:Int

基本的なデータ型は、
符号付き整数は、Int、Int8、Int16、Int32、Int64、符号無し整数は、UInt、UInt8、UInt16、UInt32、UInt64で、Intは、32ビット環境ではInt32と同じサイズ、64ビット環境ではInt64と同じサイズになる。UIntも同様。
浮動小数点は単精度がFloat、倍精度がDoubleになる。
文字列は、String、文字はCharacterになる。
2値型は、Bool。trueかfalseをとる。

定数は、

let hoge5 = 10
let hoge6 = "hogehoge"

となる。当然、後から値を代入するコードを書くとエラーになる。データ型やデータ型を明示的に各方法は変数と同じだ。

文字列

文字列は、+によって文字列連結できる。

let hoge6 = "hogehoge"
var hoge7 = "aiueo"
var hoge8 = hoge6 + hoge7   // "hogehogeaiueo"になる
hoge8 += "123"      // "hogehogeaiueo123"になる

文字列中に\()の括弧内に式を書いておくと、その部分に式の演算結果が埋め込まれる。

let hoge5 = 10
var hoge8 = "あいうえお\(hoge5),\(hoge5 + 2)"    // "あいうえお10,12"になる。

こんな感じ。


このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

とりあえず、Hello,World。

println("Hello, World!")

これを、hello.swiftと言う名前で保存して、ターミナルで

swiftc hello.swift

とすると、helloと言うファイルができるのでターミナルで

./hello

とすると、

Hello, World!

と表示される。

C言語と比べると、main関数、文の最後の;が無かったりする。あってもいいみたいで
;は、1行に複数文書く場合に区切りとして使う。
こんな感じだ。

print("Hello, ");println("World!")

さて、main関数がないってことは、コマンドライン引数をとる方法は、APIを使うことになる。

import Foundation

// コマンドライン引数を取得
let args = NSProcessInfo.processInfo().arguments

for var i = 1; i < args.count; i++ {
    println(args[i])
}

このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

↑このページのトップヘ