鍍金池/ 教程/ Java/ 名稱
成員
順序
類型
名稱
類型注解
字符串
空白符
注釋

名稱

命名時應該采取駝峰大小寫形式。

類、枚舉以及自定義類型應該將每個單詞的首字母大寫(包括第一個詞),并且不能使用分隔符。

// good
class SliderMenu {
  // ...
}

class HttpRequest {
  // ...
}

typedef num Adder(num x, num y);

最好使用 lowerCamelCase 的形式為常量命名。

一般使用 lowerCamelCase 的形式為常量命名,枚舉類型中的值也應該采用這種形式。

如果已有的代碼中采用全大寫的方式為常量命名,那么你可以打開大寫鎖定以保持代碼的一致性。

// good
const pi = 3.14;
const defaultTimeout = 1000;
final urlScheme = new RegExp('^([a-z]+):');

class Dice {
  static final numberGenerator = new Random();
}
// bad
const PI = 3.14;
const kDefaultTimeout = 1000;
final URL_SCHEME = new RegExp('^([a-z]+):');

class Dice {
  static final NUMBER_GENERATOR = new Random();
}

變動:在以前的代碼中我們建議常量命名使用全大寫。由于現(xiàn)在 const 從 final 中分離出來了,所以我們更改了命名的建議。當然,也有人希望枚舉采用全大寫的形式,但是我們希望以本指南當前的狀況為準。

對于其他的標識符,應該使用 lowerCamelCase 的形式命名。

類的成員、全局定義、變量、參數以及命名的參數都應該將除了第一個單詞以外的詞語大寫,并且不能使用分隔符。

//good
var item;

HttpRequest httpRequest;

align(clearItems) {
  // ...
}

對于在元數據注解中使用的類,應該采用 UpperCamelCase 的形式命名。

如果注解不需要任何參數,你可能希望為其創(chuàng)建一個 lowerCamelCase 形式的常量。

// good 
@Foo(anArg)
class A { ... }

@Foo()
class B { ... }

@foo
class C { ... }

對于庫以及源文件,應該采用 lowercase_with_underscores 的形式命名。

有些文件系統(tǒng)是不區(qū)分大小寫的,所以很多項目要求文件名應該全部采用小寫的形式。這種情況下使用下劃線將文件名中的單詞分隔開,這樣就可以使文件名依舊具有可讀性。使用下劃線作為分隔符的名稱依舊是有效的 Dart 標識符,如果以后 Dart 增添了對符號引用的支持,那么該特性將會非常有用。

好的例子:

  • slider_menu.dart
  • file_system.dart
  • library peg_parser

壞的例子:

  • SliderMenu.dart
  • filesystem.dart
  • library peg-parser

聲明庫的前綴的時候應該采取 lowercase_with_underscores 的形式。

// good
import 'dart:math' as math;
import 'dart:json' as json;
import 'package:js/js.dart' as js;
import 'package:javascript_utils/javascript_utils.dart' as js_utils;
// bad
import 'dart:math' as Math;
import 'dart:json' as JSON;
import 'package:js/js.dart' as JS;
import 'package:javascript_utils/javascript_utils.dart' as jsUtils;

庫名稱的前面應該加上包名并且用 . 來分隔路徑。

本指南將會幫助你避免因為兩個庫有相同名稱而產生的警告。以下使我們推薦的一些規(guī)則:

  • 所有的庫名稱之前都加上包名作為前綴。
  • 入口庫的名稱應當和包名一致。
  • 對于包中的其他庫,在包名后使用 . 來分隔庫所對應的 Dart 文件所在路徑。如果是 lib 下的庫,名稱中不用加入 lib。

舉個例子,如果包名是 my_package。下面是該包中其他庫文件的名稱:

// good 
// In lib/my_package.dart
library my_package;

// In lib/other.dart
library my_package.other;

// In lib/foo/bar.dart
library my_package.foo.bar;

// In example/foo/bar.dart
library my_package.example.foo.bar;

// In lib/src/private.dart
library my_package.src.private;

對于超過兩個字母的首字母縮略詞以及縮寫詞,應該大寫。

大寫首字母縮略詞可能有點難以閱讀,并且當該詞由相鄰的多個單詞構成時可能會導致歧義。像 HTTPSFTPConnection 這樣的名稱,你無法判斷它究竟是 HTTPS FTP 連接還是 HTTP SFTP 連接。

為了避免出現(xiàn)這種情況,首字母縮略詞以及縮寫詞還是像常規(guī)詞語那樣書寫,如果只有兩個字母的話,可以按照個人喜好命名。(兩個字母的縮寫詞,像 ID 以及 Mr. 也可以想常規(guī)詞語一樣書寫)

// good
HttpConnection
uiHandler
IOStream
HttpRequest
Id
id
Pt
DB
// bad
HTTPConnection
UiHandler
IoStream
HTTPRequest
ID
PT
Db
上一篇:空白符下一篇:類型注解