Dart基礎學習03 方法的使用

2022-02-06 07:42:36 字數 2512 閱讀 5623

1.本文主要講一下dart中的方法是怎麼定義的,下面先看乙個簡單的例子:

void printnumber(num number)
printnumber(number)
本人建議還是使用第一種吧,**的可讀性比較強。

3.如果方法的方法體只有乙個表示式,如上面這段**,可以寫成:

void printnumber(num number) =>

print('the number is $number.');

這樣是不是很高大上呢?有種lambda表示式的感覺。這裡需要注意的是當方法體是乙個宣告語句的時候就不能這樣使用了,如下面這段**就無法使用這種簡寫:

printnumber(number)
4.dart中方法的定義也十分簡單:

printnumber(2333);
5.dart方法的引數有兩種型別,必須引數和可選引數,其中必須引數定義在引數列表的前面部分,可選引數定義在引數列表的剩餘部分。

可選引數又可以分為:可選命名引數可選位置引數。同乙個引數只能是可選命名引數或可選位置引數,不能兼具兩者的功能。

同時可選引數可以設定預設值,如沒有設定預設值則相當於null。

可選命名引數

可選命名引數顧名思義,就是在給其賦值的時候通過引數名來賦值。

可選命名引數使用這種形式定義,如下:

enableflags()
可選命名引數使用:設定預設值。

可選命名引數的呼叫方式如下:

enableflags(bold: true, hidden: false);
可選位置引數

可選位置引數與可選命名引數類似,不過它是通過位置來賦值的。

可選位置引數使用包裹可選位置引數列表,與可選命名引數不同的是可選位置引數通過=來設定預設值:

string say(string from, string msg,

[string device = 'carrier pigeon', string mood])

if (mood != null)

return result;

}assert(say('bob', 'howdy') ==

'bob says howdy with a carrier pigeon');

需要注意的是在呼叫包含可選位置引數的方法時,一定要根據可選位置引數的位置進行賦值。

在dart中所有的程式都必須包含main方法來作為程式的入口。main方法的返回值是void並且它有乙個list型別的可選引數。下面是dart在web應用中的主函式寫法:

void main()
注意:..操作符可以用於對單個物件進行多重操作。
下面這個例子是dart在命令列程式中的使用範例:

void main(listarguments)
在dart中你可以將方法作為引數傳遞給另乙個方法:

printelement(element) 

var list = [1, 2, 3];

// pass printelement as a parameter.

list.foreach(printelement);

同樣的,可以將方法賦值給乙個變數:

var loudify = (msg) => '!!! $ !!!';

assert(loudify('hello') == '!!! hello !!!');

在dart中方法可以巢狀,並且內層方法可以訪問外層方法定義的變數:

var toplevel = true;

main()

}}

閉包的作用是即使方法在原先宣告範圍外使用,方法內部的變數都是可訪問的:

function makeadder(num addby) 

main()

在上面這段**中,add2,add4這兩個方法在main方法中使用,但他們卻可以訪問addby 這個變數。這就是語法閉包的意思。

下面這個例子用於展示頂層方法,靜態方法和類成員方法(例項方法)的等效判斷:

foo() {}               // a top-level function

class someclass // a static method

void baz() {} // an instance method

}main()

所有的dart方法都有返回值,若在**中沒有返,則返回值為null。

03 方法入門

按步驟編寫 效果如圖所示 編寫步驟 public class test1 private static void printnum 按步驟編寫 效果如圖所示 編寫步驟 public class test2 public static void printnum 按步驟編寫 效果如圖所示 編寫步驟 1...

day03方法和陣列

修飾符 返回值型別 方法名 引數型別 引數名 簡單的比大小 public class demo03 public void printmax double.i 假設最大的數是陣列第一位 double max i 0 for int j 0 j i.length j system.out.printl...

Java基礎》5 方法

僅供自己記錄學習,無它用,歡迎指導!定義乙個方法的格式 public static void 方法名稱 方法名稱的命名規則和變數一樣,使用小駝峰。方法體 也就是大括號當中可以包含任意條語句。注意事項 1.方法定義的先後順序無所謂。2.方法的定義不能產生巢狀包含關係。3.方法定義好了之後,不會執行的,...