OSDN Git Service

0cd61972c3208564fb8de95e1aed1ed33584b281
[ring-lang-081/ring.git] / docs / build / html / _sources / typehints.txt
1 .. index:: 
2         single: 型ヒントライブラリ; 型ヒントライブラリについて
3
4 ==========================
5 型ヒントライブラリについて
6 ==========================
7
8 型ヒントライブラリの用法を学びます。
9
10
11 .. index:: 
12         pair: 型ヒントライブラリ; 型ヒントを使う理由
13
14 型ヒントを使う理由
15 ==================
16
17 このライブラリはソースコードへ型情報を追加します。
18 このようなツールで非常に便利です。
19
20 * コードエディタ
21 * 静的解析
22
23 .. note:: Ring は動的言語であり、コンパイラによる型検査は行われません。
24
25 .. index:: 
26         pair: 型ヒントライブラリ; 用例
27
28 用例
29 ====
30
31 この用例は型ヒントライブラリの用法です。
32
33 .. code-block:: ring
34
35         load "typehints.ring"
36
37         see sum(3,4) + nl ;
38         see sayHello("Mahmoud");
39
40         int func sum(int x,int y) {
41                 return x+y ;
42         }
43
44         string func sayHello(string name) {
45                 return "Hello " + name ;
46         }
47
48 .. index:: 
49         pair: 型ヒントライブラリ; ユーザ型
50
51 ユーザ型
52 ========
53
54 型ヒントライブラリは非常に強力であり、自動的にユーザ型 (クラス) へ対応します。
55
56 用例:
57
58 .. code-block:: ring
59
60         load "typehints.ring"
61
62         import mypackage 
63
64         test()  { main([:one,:two,:three]) }
65
66         myclass func test() {
67                 see "Testing User Types!" + nl
68                 return new myclass
69         }
70
71         package mypackage {
72                 public class myclass {
73                         public static void func main(list args) {
74                                 see "welcome" + nl
75                                 see args
76                         }
77                 }
78         }
79
80 .. index:: 
81         pair: 型ヒントライブラリ; コードの内側で型を使うには
82
83 コードの内側で型を使うには
84 ==========================
85
86 また、コードの内側で型を使えます (関数プロトタイプだけに限定されません)。
87
88 用例:
89
90 .. code-block:: ring
91
92         load "typehints.ring"
93
94         int     sum = sum(3,4)
95         string  msg = sayHello("Mahmoud")
96
97         see "Sum = " + sum + nl + msg + nl
98
99
100         int func sum(int x,int y) {
101                 return x+y ;
102         }
103
104         string func sayHello(string name) {
105                 return "Hello " + name ;
106         }
107
108 .. index:: 
109         pair: 型ヒントライブラリ; 規則
110
111 規則
112 ====
113
114 * 関数プロトタイプ : 型を使うには、引数の前後を ‘(‘ と ‘)’ で必ず囲んでください。
115 * 関数のコード : 型を使うには、必ず変数の値を設定してください (代入)。
116
117 この型はライブラリで定義してあります。
118
119 .. code-block:: ring
120
121         # 低水準型
122         char             
123         unsigned         
124         signed           
125         int              
126         short            
127         long             
128         float            
129         double           
130         void             
131
132         # 高水準型
133         string           
134         list             
135         number           
136         object           
137
138         # その他
139         public           
140         static           
141         abstract         
142         protected        
143         override         
144
145