回答編集履歴
6
文章の修正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
インターフェースは共通の振る舞いを定義するものです。また、インターフェースはプログラム実行前に定める必要があります。
|
5
|
+
インターフェースは共通の振る舞いを定義するものです。また、インターフェースはプログラム実行前に定める必要があります。プログラム実行中に変化されてはインターフェース(規格)としては当然使えなくなるのでプログラムを書く人が困ります。
|
6
6
|
|
7
7
|
|
8
8
|
|
5
書式の改善
test
CHANGED
@@ -32,11 +32,15 @@
|
|
32
32
|
|
33
33
|
hayataka2049 さんからのコメントを受け、回答内容を修正しました。
|
34
34
|
|
35
|
-
過去の回答はコメントから
|
35
|
+
過去の回答はコメントからトレースできるよう下記に残します。
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
+
---
|
40
|
+
|
41
|
+
|
42
|
+
|
39
|
-
#
|
43
|
+
# 前提
|
40
44
|
|
41
45
|
|
42
46
|
|
@@ -60,7 +64,7 @@
|
|
60
64
|
|
61
65
|
|
62
66
|
|
63
|
-
#
|
67
|
+
# 回答
|
64
68
|
|
65
69
|
|
66
70
|
|
4
クラスベース/プロトタイプベースの説明をやめた
test
CHANGED
@@ -1,4 +1,42 @@
|
|
1
1
|
# 前提
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
インターフェースは共通の振る舞いを定義するものです。また、インターフェースはプログラム実行前に定める必要があります。もしプログラム実行中に変化されてはインターフェース(規格)として使えなくなってしまいます。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
よって、振る舞いが持つパラメータや戻り値には、**静的な型** を指定しなければなりません。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
`静的な型` とは **プログラムの実行前から一意に決まっている型** のことで、`動的な型` とは **実行時の実際の値によって決まる型** のことです。静的な型を持つ言語はその性質上、コンパイルが必要な場合がほとんどです。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
# 回答
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
`JavaScript` は動的型付け言語なので、インターフェースを使用することができません。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
インタフェースを利用した設計を行いたい場合は、`C#`や`Java`、`TypeScript` のようなオブジェクト指向かつ静的型付けな言語を使用する必要があります。
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
#補足
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
hayataka2049 さんからのコメントを受け、回答内容を修正しました。
|
34
|
+
|
35
|
+
過去の回答はコメントから追えるよう、下記に残します。
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
## 前提
|
2
40
|
|
3
41
|
|
4
42
|
|
@@ -22,7 +60,7 @@
|
|
22
60
|
|
23
61
|
|
24
62
|
|
25
|
-
# 回答
|
63
|
+
## 回答
|
26
64
|
|
27
65
|
|
28
66
|
|
3
文章の修正
test
CHANGED
@@ -14,7 +14,11 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
クラスベースな言語はクラスを定義する性質上、静的な型を取り扱います。プロトタイプベースな言語には 糖衣構文等で疑似的にサポートされている場合を除き、本質的にはクラスが存在せず、静的な型も持ちません。全て動的な型として扱います。
|
17
|
+
クラスベースな言語はクラスを定義する性質上、静的な型を取り扱います。プロトタイプベースな言語には 糖衣構文等で疑似的にサポートされている場合を除き、本質的にはクラスが存在せず、静的な型も持ちません。全て動的な型として扱います。
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
ここまでに述べた `静的な型` とは **プログラムの実行前から一意に決まっている型** のことで、`動的な型` とは **実行時の実際の値によって決まる型** のことです。静的な型を持つ言語はその性質上、コンパイルが必要な場合がほとんどです。
|
18
22
|
|
19
23
|
|
20
24
|
|
2
文章の修正
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
クラスベースな言語はクラスを定義する性質上、静的な型を取り扱います。プロトタイプベースな言語には 糖衣構文等で疑似的にサポートされている場合を除き、
|
17
|
+
クラスベースな言語はクラスを定義する性質上、静的な型を取り扱います。プロトタイプベースな言語には 糖衣構文等で疑似的にサポートされている場合を除き、本質的にはクラスが存在せず、静的な型も持ちません。全て動的な型として扱います。ここまでに述べた `静的な型` とは **プログラムの実行前から一意に決まっている型** のことで、`動的な型` とは **実行時の実際の値によって決まる型** のことです。静的な型を持つ言語はその性質上、コンパイルが必要な場合がほとんどです。
|
18
18
|
|
19
19
|
|
20
20
|
|
1
静的な型がコンパイル必須とは限らない
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
クラスベースな言語はクラスを定義する性質上、静的な型を取り扱います。プロトタイプベースな言語には
|
17
|
+
クラスベースな言語はクラスを定義する性質上、静的な型を取り扱います。プロトタイプベースな言語には 糖衣構文等で疑似的にサポートされている場合を除き、 本質的にはクラスが存在しないため、静的な型を持ちません。全て動的な型として扱います。ここまでに述べた `静的な型` とは **プログラムの実行前から一意に決まっている型** のことで、`動的な型` とは **実行時の実際の値によって決まる型** のことです。静的な型を持つ言語はその性質上、コンパイルが必要な場合がほとんどです。
|
18
18
|
|
19
19
|
|
20
20
|
|