がわおメモ

どこかの誰かのお役に立てれば。

Swift入門メモ -基本データ型まで-

そろそろiPhoneアプリが作れるようになりたくて、Swiftの勉強をやっと開始。

いつもお世話になってるドットインストールでSwift入門があるとのことでプレミアム会員になりました。お金払いました。

以下はそのメモ。
(有料のものをブログに載せるってどうなんですかね。。メモ程度だったらいいのかな。。ほぼそのまま載せてるけど。。ダメだったら教えて下さい)

※3/26追記 ドットインストールのヘルプに明記されていましたので、各レッスンへのリンク追記しました

01 Swiftを使ってみよう

dotinstall.com

Swiftとは

公式サイト

ツール

  • Xcode 6以上
  • Swiftを試したいだけだったら、playgroundで出来る

02 はじめてのSwift

dotinstall.com

Playgroundの使い方

  • 左側にコードを書くと、右側にそれが評価されて表示される
  • 右側には2つアイコンがある
    • 1つ目:Quick Look -> 簡単に値を表示するためのもの
    • 2つ目:Value History -> 詳しい情報が出てくる(後々使う)

はじめてのSwiftプログラム

// println -> 改行付きで文字列を表示
// print -> 改行なしで文字列を表示
// 文字列は 「”」で囲む
// 文末に「;」は付けない
println("Hello Ebichu") // “Hello Ebichu”

// 一行コメント
/* 
複数行コメント
*/

03 変数と定数を使う

dotinstall.com

変数

  • 変数を使う前には宣言
  • varキーワードを使う
  • var 変数名 : データ型
  • 変数の宣言と代入は一度に出来る
// String型の変数msgを宣言
var msg: String

// 変数msgに文字列を代入
msg = "Hello Ebichu!!"

// 変数に代入した文字列を表示
println(msg)

// ——————————

// 変数の宣言と代入を一度に行う
// String型であることがわかっているので型は不要
var msg2 = "Hello EBC"

定数

  • 変更が出来ない変数
  • 変更されると困る値や変更の予定がない値は定数にしていくと安全なプログラムが書ける
  • 定数の宣言はletキーワードを使う
let s = "ebichu"
println(s) //  “ebichu”

// 定数は変更出来ないので以下はエラーになる
// s = "momoclo"

変数・定数の展開

  • 文字列の中で展開して表示することが出来る
  • \(変数名)
var msg: String
msg = "Hello Ebichu"

let s = "ebichu"
println(s)

println("msg: \(msg), s: \(s)") // msg: Hello Ebichu, s: ebichu
  • 展開する変数の型はString以外でもOK
let msg = "Golden"
let num = 8

println("We are \(msg) \(num) !!") // We are Golden 8 !!

04 基本データ型を見ていこう

dotinstall.com

基本データ型

  • 文字列 String “hoge”
  • 整数 Int 5572320
  • 小数点を含む数値 Float/Double 3.14159265358979
    • Float/Doubleの違いは精度。Doubleの方が精度が高い
  • 論理演算 Bool true/false
  • 何もないという意味での nil

演算

  • 四則演算 + - * / %
  • 単項演算子 ++
    • 前につける ++x 、後ろにつける x++
    • 前と後ろで評価の順番が変わる
  • 文字列の連結は +
    • let s = “hello” + “world” -> helloworld
  • 論理演算 && || !
    • true && false -> false
    • true || false -> true
    • !true -> false
  • データ型を変換するconversion
// conversion
let a = "hkt"
let b = 48

// 以下はエラー。文字列型と数値型を連結しようとしているから
// let c = a + b

// 48を文字列型にする
let c = a + String(b) // hkt48