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">&amp;&amp;</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 &amp;&amp; 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">&amp;&amp;</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 &amp;&amp; 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 ? "及格" : "不及格");
}

results matching ""

    No results matching ""