回答編集履歴

2

typo

2025/03/07 00:25

投稿

shiketa
shiketa

スコア4101

test 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

スコア4101

test CHANGED
@@ -1,10 +1,8 @@
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
-
7
- \# Booleanと置き換えていいのかどうかは、しりません。元ソースの雰囲気的にはそうなのだろうな、とおもうだけです。
8
6
 
9
7
 
10
8
  これを組み入れた以下のソースは、コンパイルできます。
@@ -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()
@@ -29,3 +27,13 @@
29
27
  `.`やかっこを補っても補わなくても、コンパイルはできます。動くかどうかまでは、わかりません。
30
28
 
31
29
 
30
+ ----
31
+
32
+
33
+ \# けれど、こんなのもコンパイルは通るので、なんかよくわからんですけど。
34
+
35
+
36
+ ```kotlin
37
+ if (doorUiState isTransitioningTo 123) Unit
38
+ if 123 isTransitioningTo "abc") Unit
39
+ ```