Kotlin 変数の型を確認する
コードの変数のデータ型を知ることは、非常に有益です。 たとえば、正しいデータ型で作業していること、変数に対して正しい関数を使用していること、およびコードの効率を改善していることを確認するのに役立ちます。
Java では、instanceOf
キーワードを使用して変数のデータ型を見つけることができます。 同様に、JavaScript には typeOf
キーワードがありますが、Kotlin ではどうでしょうか。
この記事では、次のようなさまざまな方法で Kotlin 変数の型を確認する方法について説明します。
is
演算子qualifiedName
演算子
is
キーワードを使用して Kotlin 変数の型を見つける
Kotlin で変数の型を見つける最初の最も簡単な方法は、is
キーワードを使用することです。 正確な変数の型はわかりませんが、型を確認できます。
is
キーワードを使用して、変数の型が自分の考えと同じかどうかを判断できます。 これを型変換に使用して、正しいデータ型を変換していることを確認できます。
これを使用して、特定のデータ型変数を必要とする関数を実行することもできます。
以下に例を示します: is
キーワードを使用して、変数のデータ型を見つけます。
fun main() {
val variable = "Hey, there!"
if (variable is String) {
println("The variable is of a String type")
} else {
println("The variable is not of a String type")
}
}
if-else
ブロックで is
キーワードを使用して、配列の変数の型を確認することもできます。 以下のプログラムは、さまざまなデータ型の変数の配列を受け入れます。
次に、if-else
ブロックを使用して、各変数の型をチェックします。
fun main(args: Array<String>) {
var nameString = "Selena"
var ageInt = 27
var salDouble = 25000.95
val eDetails: List<Any> = listOf(nameString,ageInt,salDouble)
for(e in eDetails) {
if (e is String) {
println("First Name: $e")
} else if (e is Int) {
println("Age: $e")
} else if (e is Double) {
println("Salary: $e")
} else {
println("No such attribute found")
}
}
}
qualifiedName
キーワードを使用して Kotlin 変数の型を見つける
Kotlin 変数の型を見つけるもう 1つの方法は、qualifiedName
キーワードを使用することです。
このキーワードは、Kotlin の KClass
インターフェイスのプロパティです。 クラスの完全修飾名を返します。
is
キーワードを示す簡単なプログラムを次に示します。 プログラムは変数を受け取り、出力してから、変数の型を出力します。
fun main() {
val variable = "Hey, there!"
println(variable)
println(variable::class.qualifiedName)
}
出力からわかるように、プログラムは変数を String
型として正しく識別しました。 ここで、変数を整数に置き換えて、プログラムがまだそれを検出するかどうかを確認してみましょう。
fun main() {
val variable = 13
println(variable)
println(variable::class.qualifiedName)
}
完全修飾名ではなく変数データ型のみを取得したい場合は、qualifiedName
の代わりに simpleName
を使用して取得できます。
2つの違いは、simpleName
キーワードはデータ型の単純名のみを指定し、クラスの完全修飾名は指定しないことです。 以下のコードを見ていただければわかると思います。
fun main() {
val variable = 13
println(variable)
println(Int::class.simpleName)
}
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn