川のブログ

川の適当気ままなブログです。 

Swift 基礎文法 part2

こんにちはかわです。

アドベントカレンダー13記事目。

もうまにあわない。

kawakawa.hatenablog.com

今回は

今回もSwiftの基礎文法やっていきます。

if文

var num: Int = 5

if num <= 5{
    print("5以下だよ")
}else if num <= 10 && num > 5{
    print("5より大きく10以下だよ")
}else{
    print("10より大きいよ")
}

switch文

let name = "kawa"

switch name{
    case "naka":
        print("あなたはなかですね")
    case "kawa", "river":
        print("あなたはかわですね")
    default:
        print("だれだ君は?")
}

範囲

let age: Int = 18
switch age{
case 0..<18:
    print("17歳未満だね")
case 18...22:
    print("大学生かな")
default:
    print("大人かな")
}

配列

var numbers: [Int] = [1, 2, 3, 4, 5]
numbers.append(6) // =>  [1, 2, 3, 4, 5, 6]

let names = ["hoge", "name", "kawa"]

for文

let names = ["kawa", "naka", "river"]

for name in names{
    print("\(name)だよ")
}

let num = 8

for index in 1...9{
    print(num * index)
}

以上

kawakawa.hatenablog.com

Swift 基礎文法 part1

こんにちはかわです。

アドベントカレンダー12記事目。

全く間に合ってない。

今回は

急遽Swiftを学ばなきゃいけなくなった。

メモ程度にまとめる。

swift 3.0

標準出力

print

print("Hello World")
// => Hello World

コメントアウトは//

四則演算

それぞれ計算を載せる

print(5 + 4)
// => 9
print(5 - 4)
// => 1
print(5 * 4)
// => 20
print(5 / 4)
// => 1
print(5 % 4)
// => 1
数字と記号の間に空白を入れる場合,両方に空白を入れないとエラー
print(5 *4)
// => error
print(5* 4)
// => error
print(5*4)
// =>20

定数

let 定数名: データ型 = 値

let num: Int = 5 
let pi: Double = 3.14
let str: String = "kawa"

print(num) // 5
print(pi) // 3.14
print(str) // kawa

変数

var 変数名: データ型 = 値

キャメルケース
var num: Int = 5
var pi: Double = 3.14
var str: String = "kawa"

式展開

(変数or定数)

let name: String = "kawa"
var age: Int = 100

print("\(name)は現在\(age)歳です")
//=> kawaは現在100歳です

キャスト(型変換)

データ型(変数)

var num: Int = 5
var pi: Double = 3.14

print(Double(num) * pi)
//=>15.7
print(num * pi)
//=>error

以上

kawakawa.hatenablog.com

Ruby 多重代入

こんにちはかわです。

アドベントカレンダー11記事目です。

書きます。

何をするか

この本を大分前に買って読んでた。

読みきれてなく覚えておきたいことを記憶する目的で書く。

現在は第二版が出ているが、基礎的な部分は変わらないので学習する。

リファレンスも参考にしている

docs.ruby-lang.org

実行環境

Ruby 2.4.2

多重代入

左辺と右辺の式をカンマで区切ることでそれぞれに代入
a, b = 1, 2 
a # => 1
b # => 2

その際右辺は配列に変換されて代入される。

上記の状態で右辺を配列にしても代入可能
a, b = [1, 2]
a # => 1
b # => 2
左辺で余った変数にはnil
a, b = 1
a # => 1
b # => nil
右辺で余った要素は無視
a, b = 1, 2, 3
a # => 1
b # => 2
左辺の最後の式に*をつけることで、余った要素を配列として代入
a, *b = 1, 2, 3
a # => 1
b # => [2, 3]
右辺の先頭要素だけを代入
a , = 1, 2, 3
a # => 1

a, * = 1, 2, 3
a # => 1

#おまけ
a = 1, 2, 3
a # => [1, 2, 3]
右辺末尾だけ代入
* , a = 1, 2, 3
a # => 3
要素すべてを削除
* = 1, 2, 3

#使いみち
#メソッドの引数を無視したいときに使用

def test1(*)
  puts "OK"
end

def test2
  puts "OK?"
end

test1(1, 2) # => nil "OK"が出力
test2(1, 2) # => ArgumentError: wrong number of arguments (given 2, expected 0)
右辺に配列がある場合,左辺を()でネストすることで代入可能
a, (b, c) = 1, [2, 3]
a # => 1
b # => 2
c # => 3

以上です。