teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

typo

2025/03/07 00:25

投稿

shiketa
shiketa

スコア4133

answer CHANGED
@@ -24,16 +24,16 @@
24
24
  }
25
25
  ```
26
26
 
27
- `.`やかっこを補っても補わなくても、コンパイルはできます。動くかどうかまでは、わかりません。
27
+ `.`や括弧を補っても補わなくても、コンパイルはできます。動くかどうかまでは、わかりません。
28
28
 
29
29
 
30
30
  ----
31
31
 
32
32
 
33
- \# けれど、こんなのもコンパイルは通るので、なんかよくわからんですけど。
33
+ \# けれど、なんでもありでこんなのもコンパイルは通るので、なんかよくわからんですけど。
34
34
 
35
35
 
36
36
  ```kotlin
37
37
  if (doorUiState isTransitioningTo 123) Unit
38
- if 123 isTransitioningTo "abc") Unit
38
+ if (123 isTransitioningTo "abc") Unit
39
39
  ```

1

内容訂正

2025/03/07 00:23

投稿

shiketa
shiketa

スコア4133

answer CHANGED
@@ -1,12 +1,10 @@
1
1
  > isTransitioningTo()の定義は以下です。
2
2
  > public open infix fun S.isTransitioningTo(targetState: S): Boolean
3
3
 
4
- SをBoolean置き換えれば、こうなりますね。
4
+ Sは、総称型だおもうので定義はこうなりますね。
5
- `infix fun Boolean.isTransitioningTo(targetState: Boolean): Boolean`
5
+ `infix fun <S> S.isTransitioningTo(targetState: S): Boolean`
6
6
 
7
- \# Booleanと置き換えていいのかどうかは、しりません。元ソースの雰囲気的にはそうなのだろうな、とおもうだけです。
8
7
 
9
-
10
8
  これを組み入れた以下のソースは、コンパイルできます。
11
9
 
12
10
 
@@ -16,7 +14,7 @@
16
14
  var openedDoor: Boolean = false
17
15
  }
18
16
 
19
- infix fun Boolean.isTransitioningTo(targetState: Boolean): Boolean { TODO() }
17
+ infix fun <S> S.isTransitioningTo(targetState: S): Boolean { TODO() }
20
18
 
21
19
  fun xx() {
22
20
  val doorUiState = DoorUiState()
@@ -28,3 +26,14 @@
28
26
 
29
27
  `.`やかっこを補っても補わなくても、コンパイルはできます。動くかどうかまでは、わかりません。
30
28
 
29
+
30
+ ----
31
+
32
+
33
+ \# けれど、こんなのもコンパイルは通るので、なんかよくわからんですけど。
34
+
35
+
36
+ ```kotlin
37
+ if (doorUiState isTransitioningTo 123) Unit
38
+ if 123 isTransitioningTo "abc") Unit
39
+ ```