Xcode
Swift

【超初心者の為の!】Swiftまとめ

※超初心者が書いたものなので期待せず見ていただければ
加筆修正していきます

キャメルケース

  • 変数や定数に複数の単語を組み合わせたい場合、 単語の頭文字を大文字にすることをキャメルケースという
var blackCoffee = "bitter"
  • 但し「コードを読みやすくする」ことが目的であるため全て小文字でも エラーにはなりません。 とはいえプログラミングにおける世界的な慣習なので必ず従うようにしましょう。

リテラル

  • コードに書く値を表す文字のこと。

  • 文字、整数、実数などの値の種類があります。 最初はなんのこっちゃ?てなりますが使っていればなれますし よく使用する型は限られてくるのかと... 基本的な型は後述します

型推論

Swiftでは明確な型宣言がなくても書いたコードから
型を推測して割り振る機能がついています
(文字型ならString型だ!整数だからInt型だ! て感じ)

基本的な型

型名 説明
String 文字列(あいうえお)
Int 整数(123..)
Double,Float 浮動小数点(3.143237..)※Doubleの方がより長い数値を使用できる
Bool 真か偽(trueかFalse)

文字列補間

  • 文字(String型)の中に数字などを混ぜること
  • ”(値)”で記述
文字列補間 
let price = 100
let message = "あげぱんは\(price)円です"

 

プロパティ

  • 値が持っている変数または定数のこと
  • 値.プロパティ名で記述
var message = "Good!"  //String型の変数の宣言
message.isEmpty  //isEmptyプロパティの使用
//実行結果はfalse
message = ""  //空文字の再代入
message.isempty  //isEmpty プロパティを再度使用
//実行結果はtrue

メソッド

  • 値が持つ関数(機能)のこと。メンバー関数ともいう
  • メソッドは一つの仕事の単位であり、それぞれの型には、その型に関連する メソッドが用意されている。 ※String型なら「文字を1文字追加する」「先頭の文字の判断」 などの文字に関するメソッドが用意されている

メソッドの呼び出し

値.メソッド名()

var message = "Hello"  // sring型の変数の作成
message.append("!!")  //メソッドの呼び出し
// 実行結果はHello!!  

Array型(配列)

  • 複数の値を順番に並べて集める型、変数の箱が連なっているイメージ
  • 順番は0から始まり、要素の数だけ1番目、2番目..と順序づけして格納される

配列の作成

変数が連なった箱を作成
変数名  = [要素1、要素2、要素3]

var cats  = ["しろねこ", "ちゃとら", "くろねこ", "ぶちねこ"]

配列の取り出し

変数が連なった箱から欲しい値を取り出します
配列の変数名[インデックス]

let shironeko = cats[0]  //しろねこを取りだす
let cyatora = cats[2]    //ちゃとらを取りだす

配列要素の再代入

変数の連なった箱の中身を入れ替える
配列の変数名[インデックス]=新しい値

cats[0] = "マンチカン"
cats  //実行結果は"マンチカン", "ちゃとら", "くろねこ", "ぶちねこ" 
//0番目の値が変更される

要素の追加、削除

変数の連なった箱にさらに箱を追加する

  • 同じ値の型しか追加できない
  • 新しい要素は配列の最後に追加される

要素の追加↓

cats.append("シャム猫")
////実行結果は"マンチカン", "ちゃとら", "くろねこ", "ぶちねこ" ,"シャム猫"

要素の削除↓

cats.remove(at: 1)  //ちゃとらの削除
cats  //実行結果は"マンチカン", "くろねこ", "ぶちねこ" ,"シャム猫"

定数は要素を変更できません

要素の追加や差し替え、削除は定数宣言した配列では
行うことは不可です

let color = ["green", "blue", "red"]
color.append("black")
//コンパイルエラー発生

Dictionary型

  • 辞書のような機能を提供する型
  • 値とキーを一つのペアとして格納することで、キーを指定して値を取り出す →辞書のような機能を実現できる Arrayと違い要素の順番を決めない為、表示されるペアの順番が コードと変わる可能性がある

変数名 = [キー1: 値1, キー2: 値2,キー3: 値3]

var hamburger = ["beefburger": 350,  "cheeseburger": 500,  "doublebeefburger": 700,]
//実行結果は"beefburger": 350,   "doublebeefburger": 700,  "cheeseburger": 500, 
//実行結果とコードの順番が変わっている点に注目

値の取り出し

Dictionary型の変数名[キー]

let bg01 = hamburger["beefburger"]  //beefburgerがキーの要素の取り出し
//実行結果は350
let bg02 = hamburger["cheeseburger"] //cheeseburgerがキーの要素の取り出し
//実行結果は700

値の変更

Dictionary型の変数名[キー] = 新しい値

hamburger["beefburger"] = 300
hamburger  //実行結果の確認
 "beefburger": 300,   "doublebeefburger": 700,  "cheeseburger": 500,
//→beefburgerの値が変更されている

要素の追加

hamburger ["BLT"] = 500
hamburger  //実行結果の確認
"beefburger": 300,   "doublebeefburger": 700,  "cheeseburger": 500, "BLT": 500 
//BLT:500 の要素が追加されている

要素の削除

hamburger.removeValue(forKey: "BLt")
hamburger  //実行結果の確認
"beefburger": 300,   "doublebeefburger": 700,  "cheeseburger": 500, 
//BLT:500 の要素が削除されている

Set型について

@shimesabaさんがとても良い記事を書いてくれているので
こちらを参考にする。

https://qiita.com/shimesaba/items/6cf1e9498c112360b59f