各言語の違い(変数の宣言とデータ型)

変数の宣言と、一般的なデータ型をまとめてみた。

変数や定数の宣言

宣言したいヤツ Java Kotlin Swift
変数 型名 var 型名 var 型名
定数 final 型名 val 型名 let 型名

変数は再代入が可能な状態で定数は再代入が不可な状態ということにしておく。

余談

Kotlinでは可変を意味する「Variable」、値を意味する「Value」から来ているようだ。
まあわかるけど、"var" と "val" 一文字違いなのは紛らわしい。

Swiftの "let" には「仮に○○とする」という英語での数学の言い回しだったり、
BASICでのLET命令(変数宣言時の命令)から来ているようだよ。

データの型についての違い

各言語毎のデータ型をまとめてみた。
これくらいでいいじゃろか?

整数型

整数を扱う事が出来る型

データ長 Java Kotlin Swift
符号有り8bit Byte / byte Byte Int8
符号有り16bit Short / short Short Int16
符号有り32bit Integer / int Int Int32
符号有り64bit Long / long Long Int64
符号無し8bit UInt8
符号無し16bit UInt16
符号無し32bit UInt32
符号無し64bit UInt64

Javaではプリミティブ型とクラス(参照)型が存在しているけど、Kotlin・Swiftではプリミティブ型は存在していない。

SwiftではInt / UIntでの宣言も出来る。その場合は環境依存になるので32bit環境なら32bitサイズ、64bit環境なら64bitサイズになる。(iOS11以降は32bitアプリは対象外になっている)
また、Int以外の型(Int8等)に値を代入する場合は型の指定が必要。

var value:Int8 = 100

浮動小数点型

少数を扱う事ができる型

データ長 Java Kotlin Swift
32bit Float / float Float Float
64bit Double / double Double Double

Kotlin・Swiftでは型を指定しないとDoubleが使用される。
Kotlinでは数字リテラルの末尾に "F" をつける事で Float を明示することが出来る。 ただし、Double の "D" をつける事は出来ない。

真偽値型

真(true)か偽(false)の2種類の値を持つ型

Java Kotlin Swift
Boolean / boolean Boolean Bool

SwiftにはBoolean型もあるようで、中身はUInt8で0がfalse、それ以外がtrueといったC言語的な用法で使用出来る。
こちらを参照。

文字型

一文字の文字を扱う事が出来る型

Java Kotlin Swift
Character / char Char Character

Swiftは他にも文字を扱う型として、UnicodeScalar, UInt8, UInt16, CCharがある。
こちらを参照。

文字列型

文字の並びを扱う事が出来る型

Java Kotlin Swift
String String String

NSStringって奴はObjective-Cで使用されていたフレームワークのクラス。


ログから記事に移動してみた。