「PIONEの式」の版間の差分
提供: Eospedia
行1: | 行1: | ||
− | [[PIONE]]で使用する式のメソッド一覧を型ごとに示します。pione | + | [[PIONE]]で使用する式のメソッド一覧を型ごとに示します。pione valによる実行例を記載しています。[[PIONE定義書]]の条件などで使用するときは' '内のみを使用します。<br> |
<br> | <br> | ||
== 真偽型(boolean) == | == 真偽型(boolean) == | ||
<pre> | <pre> | ||
− | $ pione | + | $ pione val 'true==true' |
true | true | ||
− | $ pione | + | $ pione val 'true!=true' |
false | false | ||
− | $ pione | + | $ pione val 'true and false' |
false | false | ||
− | $ pione | + | $ pione val 'true or false' |
true | true | ||
− | $ pione | + | $ pione val 'true.not()' |
false | false | ||
− | $ pione | + | $ pione val 'true.as_string()' |
true | true | ||
− | $ pione | + | $ pione val 'true.as_integer()' |
1 | 1 | ||
− | $ pione | + | $ pione val 'true.as_float()' |
1.0 | 1.0 | ||
− | $ pione | + | $ pione val 'true.as_boolean()' |
true | true | ||
</pre> | </pre> | ||
行27: | 行27: | ||
.as_string(), .as_integer(), .as_float()はそれぞれの型に変換するメソッドですが、以下のような簡易表記があります。以降は簡易表記で記述します。<br> | .as_string(), .as_integer(), .as_float()はそれぞれの型に変換するメソッドですが、以下のような簡易表記があります。以降は簡易表記で記述します。<br> | ||
<pre> | <pre> | ||
− | $ pione | + | $ pione val 'true.str()' |
true | true | ||
− | $ pione | + | $ pione val 'true.i()' |
1 | 1 | ||
− | $ pione | + | $ pione val 'true.f()' |
1.0 | 1.0 | ||
</pre> | </pre> | ||
行38: | 行38: | ||
== 文字列型(string) == | == 文字列型(string) == | ||
<pre> | <pre> | ||
− | $ pione | + | $ pione val '"abc"=="def"' |
false | false | ||
− | $ pione | + | $ pione val '"abc"!="def"' |
true | true | ||
− | $ pione | + | $ pione val '"abc"+"def"' |
abcdef | abcdef | ||
− | $ pione | + | $ pione val '"abc".count()' |
3 | 3 | ||
− | $ pione | + | $ pione val '"abc".include?("ab")' |
true | true | ||
− | $ pione | + | $ pione val '"abc".include?("ac")' |
false | false | ||
− | $ pione | + | $ pione val '"abcdefg".substring(2,3)' |
bcd | bcd | ||
− | $ pione | + | $ pione val '"abc".str()' |
abc | abc | ||
− | $ pione | + | $ pione val '"12.3".i()' |
12 | 12 | ||
− | $ pione | + | $ pione val '"12.3".f()' |
12.3 | 12.3 | ||
</pre> | </pre> | ||
行63: | 行63: | ||
== 整数型(integer) == | == 整数型(integer) == | ||
<pre> | <pre> | ||
− | $ pione | + | $ pione val '1==2' |
false | false | ||
− | $ pione | + | $ pione val '1!=2' |
true | true | ||
− | $ pione | + | $ pione val '1>2' |
false | false | ||
− | $ pione | + | $ pione val '1>=2' |
false | false | ||
− | $ pione | + | $ pione val '1<2' |
true | true | ||
− | $ pione | + | $ pione val '1<=2' |
true | true | ||
− | $ pione | + | $ pione val '1+2' |
3 | 3 | ||
− | $ pione | + | $ pione val '1-2' |
-1 | -1 | ||
− | $ pione | + | $ pione val '1*2' |
2 | 2 | ||
− | $ pione | + | $ pione val '11%2' |
1 | 1 | ||
− | $ pione | + | $ pione val '1/2' |
0 | 0 | ||
− | $ pione | + | $ pione val '1.next()' |
2 | 2 | ||
− | $ pione | + | $ pione val '1.prev()' |
0 | 0 | ||
− | $ pione | + | $ pione val '1.even?()' |
false | false | ||
− | $ pione | + | $ pione val '1.odd?()' |
true | true | ||
− | $ pione | + | $ pione val '123.str()' |
123 | 123 | ||
− | $ pione | + | $ pione val '123.i()' |
123 | 123 | ||
− | $ pione | + | $ pione val '123.f()' |
123.0 | 123.0 | ||
</pre> | </pre> | ||
行105: | 行105: | ||
基本的には整数型と同じです。(但し、next(), prev(), even?(), odd?()は無い)<br> | 基本的には整数型と同じです。(但し、next(), prev(), even?(), odd?()は無い)<br> | ||
<pre> | <pre> | ||
− | $ pione | + | $ pione val '1.0==1.00' |
true | true | ||
− | $ pione | + | $ pione val '10.0!=1.00' |
true | true | ||
− | $ pione | + | $ pione val '1.0>1.00' |
false | false | ||
− | $ pione | + | $ pione val '1.0>=1.00' |
true | true | ||
− | $ pione | + | $ pione val '1.00<10.0' |
true | true | ||
− | $ pione | + | $ pione val '1.00<=10.0' |
true | true | ||
− | $ pione | + | $ pione val '1.01+10.0' |
11.01 | 11.01 | ||
− | $ pione | + | $ pione val '1.01-10.0' |
-8.99 | -8.99 | ||
− | $ pione | + | $ pione val '1.01*10.0' |
10.1 | 10.1 | ||
− | $ pione | + | $ pione val '1.01/10.0' |
0.101 | 0.101 | ||
− | $ pione | + | $ pione val '101.0%10.0' |
1.0 | 1.0 | ||
− | $ pione | + | $ pione val '12.3.str()' |
12.3 | 12.3 | ||
− | $ pione | + | $ pione val '12.3.i()' |
12 | 12 | ||
− | $ pione | + | $ pione val '12.3.f()' |
12.3 | 12.3 | ||
</pre> | </pre> | ||
行138: | 行138: | ||
整数型の演算を浮動小数点型で出力したいときには予め.f()または.as_float()で型変換を行います。<br> | 整数型の演算を浮動小数点型で出力したいときには予め.f()または.as_float()で型変換を行います。<br> | ||
<pre> | <pre> | ||
− | $ pione | + | $ pione val '1.01/10' |
fatal: PIONE method "/" is not found: #<Type integer>. #<Type float> [/pione/lib/pione/command/basic-command.rb:48:in `abort'] (2014-12-08T11:51:11.481+09:00, #8995) | fatal: PIONE method "/" is not found: #<Type integer>. #<Type float> [/pione/lib/pione/command/basic-command.rb:48:in `abort'] (2014-12-08T11:51:11.481+09:00, #8995) | ||
− | $ pione | + | $ pione val '1.01/10.f()' |
0.101 | 0.101 | ||
</pre> | </pre> | ||
行146: | 行146: | ||
== ルール表現型 == | == ルール表現型 == | ||
− | pione | + | pione valには対応していないので、式の定義のみ示します。<br> |
<pre> | <pre> | ||
行153: | 行153: | ||
== データ表現型 == | == データ表現型 == | ||
− | pione | + | pione valには対応していないので、式の定義のみ示します。<br> |
<pre> | <pre> | ||
行161: | 行161: | ||
== シーケンス == | == シーケンス == | ||
<pre> | <pre> | ||
− | $ pione | + | $ pione val '("a"|"b"|"c").length()' |
3 | 3 | ||
+ | </pre> | ||
+ | <br> | ||
+ | |||
+ | == メソッドにおける注意事項 == | ||
+ | === 四則演算における注意事項 === | ||
+ | 現バージョンでの[[PIONE]]での四則演算は二項演算のみに対応しています。三項以上の場合は必ず括弧を使用して二項になるようにします。<br> | ||
+ | <pre> | ||
+ | |||
</pre> | </pre> | ||
<br> | <br> |
2015年1月13日 (火) 01:53時点における版
PIONEで使用する式のメソッド一覧を型ごとに示します。pione valによる実行例を記載しています。PIONE定義書の条件などで使用するときは' '内のみを使用します。
目次
真偽型(boolean)
$ pione val 'true==true' true $ pione val 'true!=true' false $ pione val 'true and false' false $ pione val 'true or false' true $ pione val 'true.not()' false $ pione val 'true.as_string()' true $ pione val 'true.as_integer()' 1 $ pione val 'true.as_float()' 1.0 $ pione val 'true.as_boolean()' true
.as_string(), .as_integer(), .as_float()はそれぞれの型に変換するメソッドですが、以下のような簡易表記があります。以降は簡易表記で記述します。
$ pione val 'true.str()' true $ pione val 'true.i()' 1 $ pione val 'true.f()' 1.0
文字列型(string)
$ pione val '"abc"=="def"' false $ pione val '"abc"!="def"' true $ pione val '"abc"+"def"' abcdef $ pione val '"abc".count()' 3 $ pione val '"abc".include?("ab")' true $ pione val '"abc".include?("ac")' false $ pione val '"abcdefg".substring(2,3)' bcd $ pione val '"abc".str()' abc $ pione val '"12.3".i()' 12 $ pione val '"12.3".f()' 12.3
整数型(integer)
$ pione val '1==2' false $ pione val '1!=2' true $ pione val '1>2' false $ pione val '1>=2' false $ pione val '1<2' true $ pione val '1<=2' true $ pione val '1+2' 3 $ pione val '1-2' -1 $ pione val '1*2' 2 $ pione val '11%2' 1 $ pione val '1/2' 0 $ pione val '1.next()' 2 $ pione val '1.prev()' 0 $ pione val '1.even?()' false $ pione val '1.odd?()' true $ pione val '123.str()' 123 $ pione val '123.i()' 123 $ pione val '123.f()' 123.0
浮動小数点型(float)
基本的には整数型と同じです。(但し、next(), prev(), even?(), odd?()は無い)
$ pione val '1.0==1.00' true $ pione val '10.0!=1.00' true $ pione val '1.0>1.00' false $ pione val '1.0>=1.00' true $ pione val '1.00<10.0' true $ pione val '1.00<=10.0' true $ pione val '1.01+10.0' 11.01 $ pione val '1.01-10.0' -8.99 $ pione val '1.01*10.0' 10.1 $ pione val '1.01/10.0' 0.101 $ pione val '101.0%10.0' 1.0 $ pione val '12.3.str()' 12.3 $ pione val '12.3.i()' 12 $ pione val '12.3.f()' 12.3
整数型の演算を浮動小数点型で出力したいときには予め.f()または.as_float()で型変換を行います。
$ pione val '1.01/10' fatal: PIONE method "/" is not found: #<Type integer>. #<Type float> [/pione/lib/pione/command/basic-command.rb:48:in `abort'] (2014-12-08T11:51:11.481+09:00, #8995) $ pione val '1.01/10.f()' 0.101
ルール表現型
pione valには対応していないので、式の定義のみ示します。
データ表現型
pione valには対応していないので、式の定義のみ示します。
シーケンス
$ pione val '("a"|"b"|"c").length()' 3
メソッドにおける注意事項
四則演算における注意事項
現バージョンでのPIONEでの四則演算は二項演算のみに対応しています。三項以上の場合は必ず括弧を使用して二項になるようにします。