Operator
除法
傳回值類型為 double ,有小數點。
使用runtimeType屬性,查看變數類型。
1
2
3
4
5
6
void main() {
int d1 = 9;
var res = d1 / 5;
print(res.runtimeType);
print(res);
}
double
1.8
除法要用double 類型。
1
2
3
4
5
6
void main() {
int d1 = 9;
double res = d1 / 5;
print(res.runtimeType);
print(res);
}
整除 ~/
傳回值類型為 int ,無條件去掉小數點。
1
2
3
4
5
6
void main() {
int d1 = 9;
var res = d1 ~/ 5;
print(res.runtimeType);
print(res);
}
int
1
``
整除類型要用int。
<figure class="highlight"><pre><code class="language-python" data-lang="python"><table class="rouge-table"><tbody><tr><td class="gutter gl"><pre class="lineno">1
2
3
4
5
6
</pre></td><td class="code"><pre><span class="n">void</span> <span class="n">main</span><span class="p">()</span> <span class="p">{</span>
<span class="nb">int</span> <span class="n">d1</span> <span class="o">=</span> <span class="mi">9</span><span class="p">;</span>
<span class="nb">int</span> <span class="n">res</span> <span class="o">=</span> <span class="n">d1</span> <span class="o">~/</span> <span class="mi">5</span><span class="p">;</span>
<span class="k">print</span><span class="p">(</span><span class="n">res</span><span class="p">.</span><span class="n">runtimeType</span><span class="p">);</span>
<span class="k">print</span><span class="p">(</span><span class="n">res</span><span class="p">);</span>
<span class="p">}</span>
</pre></td></tr></tbody></table></code></pre></figure>
## 邏輯運算子
|邏輯運算子|說明|
|:---:|:--------|
|&&| 二邊都為true則true|
|`||`|有一個為true則true|
|`!`|相反|
左右二邊運算元都要是bool 類型。<br>
以下編譯(語法)錯誤。<br>
<figure class="highlight"><pre><code class="language-dart" data-lang="dart"><table class="rouge-table"><tbody><tr><td class="gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre><span class="kt">void</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
<span class="kt">int</span> <span class="n">d1</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">d2</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">d1</span> <span class="o">&&</span> <span class="n">d2</span><span class="p">)</span> <span class="p">{</span>
<span class="n">print</span><span class="p">(</span><span class="s">"d1 && d2 is true"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span><span class="p">(</span><span class="n">d1</span><span class="p">)</span> <span class="p">{</span>
<span class="n">print</span><span class="p">(</span><span class="s">"true"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span><span class="p">(</span><span class="n">d2</span><span class="p">)</span> <span class="p">{</span>
<span class="n">print</span><span class="p">(</span><span class="s">"false"</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></td></tr></tbody></table></code></pre></figure>
C++ 與 Python 可以接受任何類型做 and / or 邏輯運算,但 dart 只接受bool 進行邏輯運算。<br>
以下是修改後,dart正確程式碼。<br>
<figure class="highlight"><pre><code class="language-dart" data-lang="dart"><table class="rouge-table"><tbody><tr><td class="gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre><span class="kt">void</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
<span class="kt">bool</span> <span class="n">b1</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
<span class="kt">bool</span> <span class="n">b2</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">b1</span> <span class="o">&&</span> <span class="n">b2</span><span class="p">)</span> <span class="p">{</span>
<span class="n">print</span><span class="p">(</span><span class="s">"b1 && b2 is true"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="n">b1</span><span class="p">)</span> <span class="p">{</span>
<span class="n">print</span><span class="p">(</span><span class="s">"true"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="n">b2</span><span class="p">)</span> <span class="p">{</span>
<span class="n">print</span><span class="p">(</span><span class="s">"false"</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></td></tr></tbody></table></code></pre></figure>
## 三元運算子
語法
條件 ? 結果1 : 結果2; ```
1
2
3
4
void main() {
int score = 60;
print(score >= 60 ? "及格" : "不及格");
}