4
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Swift基礎構文のメモ(初心者向け)

Posted at

#【経緯】
社内もくもく会にてSwiftが始まったので復習がてら。

#【Swiftとは?】
Objective-Cの後を継ぐAppleのiOSで利用できるプログラミング言語。
世間の評判を見ると批判が多いObjective-Cくんですが、個人的にC言語ベースだしObjective-C++があるので言うほど嫌いじゃないです。
(メモリ管理出来る言語が好きなだけ感はある)
初めての言語としてC++とObjective-Cを並行して学んだせいで学生時代はトラウマでしたが!
Swiftは今流行りの言語よりなので、型推論があったり表記がObjective-Cより取っつきやすいイメージです。

#【基礎構文】
■定数宣言

let name : String = "Qiita"
let age : Int = 10

■変数宣言

var name : String = "Qiita"
var age : Int = 10

■演算

var x = 10
x = x + 10
/* もしくは */
x += 10

var x = 10
x = x - 10
/* もしくは */
x -= 10

var x = 10
x = x * 10
/* もしくは */
x *= 10

var x = 10
x = x / 10
/* もしくは */
x /= 10

var x = 10
x = x % 10
/* もしくは */
x %= 10

■文字列の連結

let swift : String = "Swift"
let level : String = "入門"
print(swift + level)
出力
Swift入門

■変数展開

let swift : String = "Swift"
print("こんにちは、\(swift)さん")
出力
こんにちは、Swiftさん

■キャスト

パターンとして「① コンバージョンする、② descriptionをつかう、③ asを使う」の三つあるらしい。

① コンバージョンする
String(),Int(),Double()みたいな記載で変換する。
ただしString()はDouble型などの浮動小数点値と文字列の相互変換が無いため期待通りにはならない。

let age : Int = 15
print(String(age) + "歳です")
出力
15歳です

② descriptionを使う
数値→String変換に使うらしい。
でもAppleでは推奨してないっぽい……?
直接参照するのではなく、String(describing:)を使えとのこと。

let age : Double = -15.23
print(age.description)
print(String(describing: age))
出力
-15.23
-15.23

③ asを使う
インスタンスをキャストする場合に使うもの。
as / as ! / as?で使用用途が変わってくる。

記載方法 内容
as アップキャストなどキャストが成功すると保証される場合
as! 強制ダウンキャスト
as? ダウンキャストが成功するか分からない場合(失敗するとnil)
class Animal {}
class Cat : Animal {}
 
let cat : Animal = Cat()
let type1 = cat as Animal  // OK
let type2 = cat as? Cat    // OK (Optional(Cat))
let type3 = cat as! Cat    // OK

print(type1)
print(type2)
print(type3)
出力
Main.Cat
Optional(Main.Cat)
Main.Cat

■条件分岐

let showLogPrint : Int = 2
if showLogPrint == 0 {
	print("showLogPrint:0")
} else if showLogPrint == 1 {
	print("showLogPrint:1")
} else {
	print("showLogPrint:2")
}

出力
showLogPrint:2

【所感】

前にアプリ一本作ったことはあるし、PythonやらKotlinやらで流行りの言語を多少書いていたおかげか、久しぶりに触っても特に抵抗感が無かったことに安心。やっかいなのは言語仕様よりiOSの仕様かと思います。

【参考】

https://qiita.com/nitaking/items/3f0a7b8e7f7223a1c62a
https://qiita.com/hiroo0529/items/27ec2c24327a692aa0dd
https://qiita.com/MashMorgan/items/771f8143470b80bd9996
https://qiita.com/aki/items/50fbab1a4c0df3f3d23f

4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?