2015-06-05 71 views
1

我試圖在飛鏢中創建一個方法,但碰到了一堵牆。我在看如何.toUpperCase();和.toLowerCase();完成了。我試圖創建的方法是.capitalize();在飛鏢中創建一個大寫的方法

我想這樣調用這個方法 String hello =「WORLD」.capitalize(); //世界

這裏是我的代碼到目前爲止

String capitalize() { 
return this.codeUnitAt(0).toUpperCase() + this.substring(1).toLowerCase(); 
} 

當運行字符串Hello = 「WORLD」 .capitalize();我收到以下錯誤

[38;5;124m[2015-6-4 11:37:13.011] Class 'String' has no instance method 'capitalize'.

NoSuchMethodError: method not found: 'capitalize'
Receiver: "WORLD"
Arguments: [][0m

我知道我可以調用像String capitalize(String s) => s[0].toUpperCase() + s.substring(1); 功能,但更願意保持字符串操作調用相同。

謝謝,我感謝所有幫助:)

+0

您需要FOT例如擴展方法來做到這一點,其達特沒有(還)。 –

回答

3

像你想你不能擴展String類。就像這樣使用它:

capitalize("WORLD"); 
0

是的,不像JS,你不能只是改變飛鏢中的任何類。你只能擴展它。例如。您可以使用capitalize方法創建MyString類。但我不認爲你想要它。只是做一些StringUtils.dart庫法capitalize

+0

你不能在Dart中擴展像'int','double','num','String'這樣的基本類型。 'MyString'可能不是一個好的嘗試(正如你所提到的)。 –

+0

是的,可能。謝謝 – kelegorm