カテゴリ:Swift
更新日時:2022/04/25
変数・定数
型 | 説明 |
---|---|
var | 変数を定義する時 |
let | 定数を定義する時 |
データ型
型 | 説明 | 例 |
---|---|---|
Int | 整数 | val = 1 |
Double | 64bitの浮動小数点数 | val = 0.5 |
Float | 32bitの浮動小数点数 | val = 0.5 |
Bool | ブール値 | val = true |
String | 0文字以上の文字列 | val = "Swift始めました!!!" |
Character | 1文字の文字列 | val = "Swift" |
Array | 配列 | val = ["swift", "python", "java"] |
Set | セット(Arrayと同じ値の集まりだが、Setは同じ値は一度しか保持されない。値に順番の概念がない。) | val = ["swift", "python", "java"] |
Dictionary | 辞書型 | val = ["swift": "python", "java": "javascript"] |
例)var 変数名: データ型 = 値 → var val1: String = "abc"
let 定数名: データ型 = 値 → let val2: String = "ABC"
★省略可能★
例) var 変数名 = 値 → var val1 = "abc"
let 定数名 = 値 → let val2 = "ABC"
★データ型だけ定義可能★
例) var 変数名: データ型 → var val1 = String
let 定数名: データ型 → let val2 = Int
Int型の種類
型 | 代入値の範囲 |
---|---|
Int | 32bit環境の場合はInt32と同様。64bit環境の場合はInt64と同様。 |
Int8 | -128 ~ 127 |
Int16 | -32768 ~ 32767 |
Int32 | -2147483648 ~ 2147483647 |
Int64 | -9223372036854775808 ~ 9223372036854775807 |
特殊変数宣言
書式 | 説明 | 備考 |
---|---|---|
type(of: 変数名) | 指定した変数のデータ型を文字列で取得する | |
var 変数名: データ型? = 値 | nilを代入できる変数を宣言する(オプショナル型) | Swiftでは「なにもない」という状態をnilと呼ぶ |
type(of: 変数名)
例
var a = 1
var b = 0.5
var c = "Swift"
print(type(of: a))
print(type(of: b))
print(type(of: c))
〜出力結果〜
Int
Double
String
var 変数名: データ型? = 値
例
var a: Int? = nil
var b: String? = nil
a = 1
b = "Swift"
print(a)
print(b)
〜出力結果〜
Optional(1)
Optional("Swift")
◎発展◎
アンラップ処理
説明:オプショナル型変数に値が入っていない(nil)ことがわかっている場合、アンラップ処理をすることによりオプショナル型ではない通常の変数として扱われる。
アンラップ処理をする場合はオプショナル型変数の後ろに「!」を付ける。
例
var a = 5
var b: Int? = nil
b = 2
print(a + b!)
四則演算
演算子 | 説明 |
---|---|
+ | 足し算 |
- | 引き算 |
* | 掛け算 |
/ | 商を求める割り算 |
% | 余りを求める割り算 |
比較演算子
演算子 | 説明 |
---|---|
== | 左右の値が等しい場合はtrue, 等しくない場合はfalse |
!= | 左右の値が等しくない場合はtrue,等しい場合はfalse |
< | 左の値が右の値より小さい場合はtrue,そうでなければfalse |
> | 左の値が右の値より大きい場合はtrue,そうでなければfalse |
<= | 左の値が右の値以下の場合はtrue,そうでなければfalse |
>= | 左の値が右の値以上の場合はtrue,そうでなければfalse |
if~else if~else文の書式
if 条件式a {
条件式aが満たされた場合の処理
} else if 条件式b {
条件式bが満たされなかった場合の処理
} else {
それら以外の場合の処理
}
論理演算子
演算子 | 説明 |
---|---|
&& | 左右の値がtrueの場合true,それ以外はfalse |
|| | 左の値又は右の値がどちらかがtrueの場合にtrueになる,それ以外はfalse |
! | 値がtrueの場合はfalse,値がfalseの場合はtrue |
switch文
① switch 変数 {
case 値1: 値1と等しい場合に実行する処理 case 値2: 値2と等しい場合に実行する処理 default: それ以外の値の場合に実行する処理
}
② switch 変数 {
case 値1, 値2, 値n: 値1, 値2, 値nと等しい場合に実行する処理 default: それ以外の値の場合に実行する処理
}
◎発展◎
caseで範囲の指定
演算子 | 説明 | 例 |
---|---|---|
... | closed範囲演算子。演算子の左側の値から右側の値の範囲内かを判定 | 1...5(1以上5以下) |
..< | half-open範囲演算子。演算子の左側の値から右側の値未満までの範囲内かを判定 | 1..<5(1以上5未満) |
for文
① for 変数 in 繰り返しの範囲 {
繰り返し実行する処理
}
②指定された繰り返しの範囲を降順で繰り返し実行する
for 変数 in (繰り返しの範囲).reversed() {
繰り返し実行する処理
}
while文
while 繰り返し条件式{
繰り返し実行する処理
}
例)break使用可
var a = 0
while a < 10 {
print(a) a += 1
if(a > 5) { break }
}
repeat-while文
『条件式』が満たされている場合は処理を繰り返し実行する
repeat {
繰り返し実行する処理
} while 条件式
配列
let 配列名 = [要素1, 要素2, 要素3...]
let 配列名: [データ型] = [要素1, 要素2, 要素3...]
配列変更書式 | 説明 |
---|---|
配列名.append(追加する要素) | 配列最後に要素を追加する |
配列名.insert(挿入要素, at:挿入位置番号) | 配列の途中に要素を追加する |
配列名.removeAll() | 全ての要素を削除する |
配列名.removeLast() | 最後の要素を削除する |
配列名.remove(挿入要素,at:挿入位置番号) | 配列の途中の要素を削除する |
辞書
let 辞書名 = [キー1:値1, キー2:値2, キー:値3, ...]
let 辞書名 = [キーのデータ型:値のデータ型] = [キー1:値1, キー2:値2, キー:値3, ...]
要素削除 | 説明 |
---|---|
辞書名.removeValue(forKey:キー) | 指定したキーの要素を削除する |
辞書名.removeAll() | 全ての要素を削除する |
コレクション(配列・辞書)のコレクションの操作
空の配列を作成
var 配列名:[データ型] = []
繰り返し処理でコレクションデータを取得
for 変数 in コレクション{
繰り返し実行する処理
}
◎全ての要素をチェック◎
『allSatisfy』→全要素に対して指定した条件を満たすかどうかを判定する機能
例)
var a = [2, 4, 6, 8, 10]
let result = a.allSatisfy ($0 % 2 == 0)
print(result)
繰り返し間隔の指定
for 変数 in stride(from:開始値, to:終了値, by:間隔){
実行したい処理
}
関数
関数定義
func 関数名() {
処理
}
①引数がある関数
func 関数名(引数名:データ型){
処理
}
②引数が複数ある関数
func 関数名(引数名1:データ型1, 引数名2:データ型2...) {
処理
}
引数の初期値設定
func 関数名(引数名1:データ型1 = 初期値) {
処理
}
戻り値を返す関数
func 関数名() -> 戻り値の型 {
処理 return 戻り値
}
◎guard文◎
説明:関数を継続する条件が満たない場合、関数を終了する処理を行う
guard 条件式 else {
条件式がfalseの場合の処理
}
◎defer文◎
説明:関数を終了する直前に実行したい処理を行う
defer {
関数を終了する前に実行したい処理
}
クラス
クラス定義
class クラス名 {
プロパティ イニシャライザ メソッド
}
◎クラスのインスタンス化(※インスタンス → クラスから作り出したもの)◎
var 変数 = クラス名()
let 変数 = クラス名()
◎イニシャライザ → クラスの初期化処理◎
init() {
クラスの初期化処理
}
◎引数のあるイニシャライザ◎
init(引数1:データ型, 引数2:データ型) {
クラスの初期化処理
}
◎計算型プロパティ◎
var プロパティ名:データ型 {
get{ 値を取り出す処理 } set { 値を代入する処理 }
}
◎プロパティ監視◎
var プロパティ名:データ型 = 初期値{
willSet { プロパティ値が変更される前に実行したい処理 } didSet { プロパティ値が変更された後に実行したい処理 }
}
◎スーパークラスを継承してサブクラスを定義◎
class サブクラス名:スーパークラス名 {
クラスメンバ
}
現在このカテゴリには、ページまたはメディアがありません。