所有 Bazel 檔案

回報問題

所有 Bazel 檔案所提供的方法,包括 .bzl 檔案、BUILD、MODULE.bazel 和 WORKSPACE。

成員

abs

unknown abs(x)

傳回指定數字的絕對值 (規模相同的非負數)。
abs(-2.3) == 2.3

參數

參數 說明
x int;或 float;必要
數字 (int 或 float)

全部

bool all(elements)

如果所有元素評估結果為 True 或集合為空白,則傳回 true。系統會使用 bool 函式將元素轉換為布林值。
all(["hello", 3, True]) == True
all([-1, 0, 1]) == False

參數

參數 說明
elements 必要
是字串或一組元素。

不限

bool any(elements)

如果有至少一個元素評估為 True,系統會傳回 true。系統會使用 bool 函式將元素轉換為布林值。
any([-1, 0, 1]) == True
any([False, 0, ""]) == False

參數

參數 說明
elements 必要
是字串或一組元素。

bool

bool bool(x=False)

布林值類型的建構函式。如果物件為 NoneFalse、空白字串 ("")、數字 0 或空白集合 (例如 ()[]),則會傳回 False。否則,會傳回 True

參數

參數 說明
x 預設值為 False
要轉換的變數。

dict

dict dict(pairs=[], **kwargs)

從選用的位置引數和一組選用的關鍵字引數建立字典。如果多次指定同一個鍵,系統會使用最後一個值。凡是透過關鍵字引數提供的項目,都會視為透過位置引數提供的項目。

參數

參數 說明
pairs 預設值為 []
字典或可疊代,元素元素皆為長度 2 (鍵、值)。
kwargs 必填
其他項目的字典。

dir

list dir(x)

傳回字串清單,也就是屬性物件的屬性名稱和方法。

參數

參數 說明
x 必要
要檢查的物件。

列舉

list enumerate(list, start=0)

傳回對 (雙元素元組) 的清單,其中包含索引 (int) 和輸入序列中的項目。
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]

參數

參數 說明
list 必填
輸入序列。
start 預設值為 0
起始索引

失敗

None fail(msg=None, attr=None, *args)

導致執行失敗並顯示錯誤。

參數

參數 說明
msg 預設值為 None
已淘汰:請改用位置引數。此引數的行為類似於隱含位置的引數。
attr string;或 None;預設值為 None
已淘汰。使包含此字串的選用前置字串可以加入錯誤訊息。
args 必要
出現在錯誤訊息中的值清單,格式為 debugPrint (預設相當於 str) 且以空格連接。

float

float float(x=unbound)

以浮點值傳回 x。
  • 如果 x 已經是浮點值,float 會傳回未變更的值。
  • 如果 x 是布林值,float 會傳回 1.0 代表 True,而 False 會傳回 0.0。
  • 如果 x 是 int,float 會傳回最接近 x 的有限浮點值;如果規模過大,就會發生錯誤。
  • 如果 x 是字串,該常值必須是有效的浮點常值,或是等於 (忽略大小寫) 至 NaNInfInfinity,並視需要在 +- 符號前面加上 +-
如果輸入任何其他值,就會發生錯誤。如果沒有引數,float() 會傳回 0.0。

參數

參數 說明
x 預設值為 unbound
要轉換的值。

getattr

unknown getattr(x, name, default=unbound)

傳回指定名稱的 struct 欄位 (如果有的話)。如果沒有,則會傳回 default (如有指定) 或引發錯誤。getattr(x, "foobar") 相當於 x.foobar
getattr(ctx.attr, "myattr")
getattr(ctx.attr, "myattr", "mydefault")

參數

參數 說明
x 必要
存取屬性的結構體。
name 必填
結構屬性的名稱。
default 預設值為 unbound
如果結構體沒有指定名稱的屬性,系統會傳回預設值。

哈薩特

bool hasattr(x, name)

如果物件 x 具有指定 name 的屬性或方法,則傳回 True,否則傳回 False。範例:
hasattr(ctx.attr, "myattr")

參數

參數 說明
x 必要
要檢查的物件。
name 必填
屬性的名稱。

hash

int hash(value)

傳回字串的雜湊值。系統會採用與 Java 的 String.hashCode() 相同的演算法,確定演算法是否有效。
s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
目前仍不支援字串以外的值雜湊。

參數

參數 說明
value 必要
要雜湊處理的字串值。

int

int int(x, base=unbound)

以 int 值傳回 x。
  • 如果 x 已是 int,int 會傳回未變更的值。
  • 如果 x 是布林值,int 會傳回 1 代表 True,0 則會傳回 0 代表 False。
  • 如果 x 是字串,則必須採用 <sign><prefix><digits> 格式。<sign>"+""-" 或空白 (視為正值)。<digits> 是介於 0 到 base 到 1 之間的一系列數字,其中 10 到 35 的字母 a-z (或同等 A 到 Z) 會使用為數字。如果 base 為 2/8/16,<prefix> 是選用項目,分別可以是 0b/0o/0x (或相等的 0B/0O/0X);如果 base 是這些底數以外的任何其他值或特殊值 0,則前置字串必須空白。在此情況下,base 為 0 時,系統會將字串解譯為整數常值,因為如果使用任何前置字串,系統會根據 2/8/10/16 的底數選擇其中一個底數。如果 base 為 0,就不會使用前置字元,且開頭不得為 0 個數字,前置字元不能為 0,以避免八進位與小數之間混淆。字串代表的數字規模,必須在 int 類型允許範圍內。
  • 如果 x 是浮點值,int 會傳回浮點數的整數值 (無條件進位為零)。如果 x 不是有限 (NaN 或無限大),則將視為錯誤。
如果 x 是任何其他類型,或者值是不符合上述格式的字串,這個函式就會失敗。與 Python 的 int 函式不同,這個函式不允許零引數,也不允許字串引數出現多餘的空白字元。

範例:

int("123") == 123
int("-123") == -123
int("+123") == 123
int("FF", 16) == 255
int("0xFF", 16) == 255
int("10", 0) == 10
int("-0x10", 0) == -16
int("-0x10", 0) == -16
int("123.456") == 123

參數

參數 說明
x 必要
要轉換的字串。
base 預設值為 unbound
解譯字串值的基礎,預設值為 10。必須介於 2 到 36 (含) 之間,或是設為 0,以便偵測底數,並將 x 視為整數常值。如果值不是字串,則不得提供這個參數。

len

int len(x)

傳回字串、序列 (例如清單或元組)、dict 或其他可疊代字串的長度。

參數

參數 說明
x 必要
要回報長度的值。

list

list list(x=[])

傳回元素與指定的疊代值具有相同元素的新清單。
list([1, 2]) == [1, 2]
list((2, 3, 2)) == [2, 3, 2]
list({5: "a", 2: "b", 4: "c"}) == [5, 2, 4]

參數

參數 說明
x 預設值為 []
要轉換的物件。

最高

unknown max(*args)

傳回所有指定引數中最大的一個。如果只提供一個引數,該引數就必須是非空白的疊代。如果元素無法比較 (例如含有字串的 int),或者沒有提供引數,則會導致錯誤。
max(2, 5, 4) == 5
max([5, 6, 3]) == 6

參數

參數 說明
args 必要
要檢查的元素。

分鐘

unknown min(*args)

傳回所有指定引數中的最小一個。如果只提供一個引數,該引數不能空白。如果元素無法比較 (例如含有字串的 int),或沒有提供引數,就會發生錯誤。
min(2, 5, 4) == 2
min([5, 6, 3]) == 3

參數

參數 說明
args 必要
要檢查的元素。

顯示

None print(sep=" ", *args)

args 列印為偵錯輸出內容。而且前面會加上 "DEBUG" 字串和這個呼叫的位置 (檔案和行號)。引數轉換為字串的確切方式未指定,且可能隨時變更。具體而言,這種格式可能與 str()repr() 的格式不同,也較為詳細。

我們不建議在正式版程式碼中使用 print,因為這會為使用者建立的垃圾內容。針對淘汰項目,請盡可能使用 fail() 做出硬性錯誤。

參數

參數 說明
sep 預設值為 " "
物件之間的分隔符字串預設為空格 (「 」)。
args 必要
要列印的物件。

range

sequence range(start_or_stop, stop_or_none=None, step=1)

step 增量建立項目從 startstop 的清單。如果提供單一引數,項目的範圍會從 0 到該元素。
range(4) == [0, 1, 2, 3]
range(3, 9, 2) == [3, 5, 7]
range(3, 0, -1) == [3, 2, 1]

參數

參數 說明
start_or_stop 必要
如果提供停靠站,起始元素值,則停靠站和實際起始值為 0
stop_or_none int;或 None;預設值為 None
「不」要加入結果清單中的第一個項目索引,並在達到 stop 前停止產生清單。
step 預設值為 1
遞增 (預設為 1)。可能是負值。

資源表

string repr(x)

將任何物件轉換成字串表示法。這對於偵錯非常有用。
repr("ab") == '"ab"'

參數

參數 說明
x 必要
要轉換的物件。

已撤銷

list reversed(sequence)

傳回不凍結的新清單,其中包含原始可疊代序列的元素。
reversed([3, 5, 4]) == [4, 5, 3]

參數

參數 說明
sequence 必要
要反轉的可疊代序列 (例如清單)。

sorted

list sorted(iterable, *, key=None, reverse=False)

傳回新的排序清單,其中包含提供之可疊代序列的所有元素。如未使用 x < y 來比較任何元素 x, y,就會發生錯誤。元素會以遞增順序排序,除非反向引數為 True,這時元素會遞減排序。 排序是穩定的:比較等同的元素保留原本的相對順序。
sorted([3, 5, 4]) == [3, 4, 5]

參數

參數 說明
iterable 必要
要排序的可疊代序列。
key 預設值為 None
這是比較前套用至各元素的選用函式。
reverse 預設值為 False
以遞減順序傳回結果。

str

string str(x)

將任何物件轉換成字串。這對於偵錯非常有用。
str("ab") == "ab"
str(8) == "8"

參數

參數 說明
x 必要
要轉換的物件。

tuple

tuple tuple(x=())

傳回與指定疊代值具有相同元素的元組。
tuple([1, 2]) == (1, 2)
tuple((2, 3, 2)) == (2, 3, 2)
tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)

參數

參數 說明
x 預設值為 ()
要轉換的物件。

類型

string type(x)

傳回其引數的類型名稱。這對偵錯和類型檢查相當實用。範例:
type(2) == "int"
type([1]) == "list"
type(struct(a = 2)) == "struct"
這個函式日後可能會變更。如要編寫與 Python 相容的程式碼,同時確保程式碼在未來可以使用,請僅用於比較傳回值:
if type(x) == type([]):  # if x is a list

參數

參數 說明
x 必要
要檢查類型的物件。

zip

list zip(*args)

傳回 tuplelist,其中第 i- 個元組包含每個引數序列或疊代的 i-th 元素。清單的輸入內容長度最短。如果採用單一可疊代引數,會傳回 1 元組的清單。沒有引數,則會傳回空白清單。範例:
zip()  # == []
zip([1, 2])  # == [(1,), (2,)]
zip([1, 2], [3, 4])  # == [(1, 3), (2, 4)]
zip([1, 2], [3, 4, 5])  # == [(1, 3), (2, 4)]

參數

參數 說明
args 匯出的
必要清單。