質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

1319閲覧

input.text.toString()の解釈

Kuukai64

総合スコア9

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2020/03/16 06:52

Android Studioを用いてアプリ開発の勉強をしている学生です。

使用言語はKotolinです。

以下の点について理解が出来ていませんので回答をどうかよろしくお願いいたします。

Kotolin

1 override fun onClick(v: View) { 2 val input = findViewById<EditText>(R.id.etName) 3 val output = findViewById<TextView>(R.id.tvOutput) 4 5 val inputStr = input.text.toString() 6 output.text = inputStr + "さん、こんにちは!" 7 } 8

というコードにおいて、val inputStr = input.text.toString() の解釈は
TextView型の変数inputのtextプロパティを参照し、toString()メソッドの引数にtextプロパティの値を渡しているという解釈で正しいのでしょうか?

また、input.textと入力した時点でtextプロパティのゲッターgetText()が裏で呼ばれて入力した文字列を引数としてEditable型で取得した後に返しているという私の解釈も正しいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず、inputはTextView型ではなく、EditText型です。
流れとしては

  1. input.textEditText型のtextというEditable型プロパティを取得

(TextView::textはString型(文字列型)ですが、EditText::textはEditable型といってややこしいです。注意!!)
2. toString()はEditable型の持つtoString()という関数を呼び出す。
(toStringにtextを渡しているという概念ではありません。Editable型のtext自身が自分をString化する能力を持っていると考えてください。)
3. 呼び出されたtoString()によりEditable型がString型(文字列型)に変換されinputStrという変数に格納される

投稿2020/03/16 07:09

quadii.shii

総合スコア257

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kuukai64

2020/03/16 07:33

inputはEditText型でした。誤って入力してしまい申し訳ありません。 おかげさまで、少し理解が進んだ気がします。 ありがとうございます。 ちなみに、input.textで見えない関数getText()が呼ばれているという解釈は正しいでしょうか?
quadii.shii

2020/03/16 07:35

その通りです。VM上で呼ばれているらしいですね。Javaなら明示的にgetText(), setText(String val)的な呼び方をしますが、Kotlinではそれを意識しなくてよいようにラップされているということです。 getTextという書き方でも動くとは思いますが、AndroidStudioに怒られますね。
Kuukai64

2020/03/16 08:12

Kotolinは省略が多いので、便利な反面、初学者にはコードの意図が分かりづらくなるという側面がありますよね。 私はそれで苦しめられることが多々あります(笑) 丁寧に回答していただきありがとうございました!
quadii.shii

2020/03/16 08:14

Javaをたくさん書いてきた人間から見ると「え、書かなくていいんですか?」という幸せ感のある良い減です。 これからも頑張ってください。
quadii.shii

2020/03/16 08:15

もとい「良い言語」。失礼。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問