所有 Bazel 檔案

回報問題 Nightly

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

成員

abs

unknown abs(x)

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

參數

參數 說明
x int; 或 float; required
一個數字 (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 int;預設值為 0

失敗

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

導致執行作業失敗並發生錯誤。

參數

參數 說明
msg 預設值為 None
已淘汰:請改用位置引數。此引數就像隱含的位置引數。
attr string;或 None;預設值為 None
已淘汰。這會將包含這個字串的選用前置字元加入錯誤訊息中。
sep string;預設值為 " "
。物件之間的分隔符字串預設為空格 (" )。
args 必要
顯示在錯誤訊息中的值清單,格式為 debugPrint (預設為 str) 並與 sep 彙整 (預設為「 」)。

float

float float(x=unbound)

以浮點值傳回 x。
  • 如果 x 已經是浮點值,float 會傳回不變。
  • 如果 x 是布林值,float 會傳回 1.0 代表 True,然後傳回 0.0 代表 False。
  • 如果 x 是 int,float 會傳回最接近 x 的有限浮點值;如果規模過大,就會傳回錯誤。
  • 如果 x 是字串,則必須是有效的浮點常值,或與 NaNInfInfinity 相同 (忽略大小寫) 至 NaNInfInfinity,也可選擇在前面加上 +- 符號。
如果設為其他值,就會發生錯誤。如未使用任何引數,float() 會傳回 0.0。

參數

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

getattr

unknown getattr(x, name, default=unbound)

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

參數

參數 說明
x 必要
存取其屬性的結構。
name string; required
struct 屬性的名稱。
default 預設值為 unbound
在結構體沒有指定名稱的屬性時,要傳回的預設值。

哈斯塔爾

bool hasattr(x, name)

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

參數

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

hash

int hash(value)

傳回字串的雜湊值。判定方法是使用與 Java 的 String.hashCode() 相同的演算法,也就是:
s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
目前不支援在字串之外對值進行雜湊處理。

參數

參數 說明
value string;必要
要雜湊的字串值。

int

int int(x, base=unbound)

傳回 x 做為 int 值。
  • 如果 x 已經是 int,int 會傳回不變。
  • 如果 x 是布林值,int 會傳回 1 代表 True,然後傳回 0 代表 False。
  • 如果 x 是字串,則必須採用 <sign><prefix><digits> 格式。<sign>"+""-" 或空白 (解釋為正數)。<digits> 是介於 0 到 base 到 1 之間的一串數字,其中字母 a-z (或相等的 A-Z) 會用做 10 到 35 的數字。在 base 為 2/8/16 的情況下,<prefix> 為選用項目,分別為 0b/0o/0x (或同等的值為 0B/0O/0X);如果 base 是這些底數或特殊值 0 以外的任何其他值,則前置碼必須留空。在 base 為 0 的情況下,如果使用任何前置字元,系統會將字串解讀為整數常值。在此情況下,系統會選擇 2/8/10/16 其中一個底數 (如有使用任何前置字元)。如果 base 為 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 iterable;預設為 []
要轉換的物件。

max

unknown max(key=None, *args)

傳回所有指定引數中最大的一個。如果只提供一個位置引數,就必須是不可空白的可疊代項目。如果元素無法比較 (例如帶有字串的 int),或是沒有提供引數,就會發生錯誤。
max(2, 5, 4) == 5
max([5, 6, 3]) == 6
max("two", "three", "four", key = len) =="three"  # the longest
max([1, -1, -2, 2], key = abs) == -2  # the first encountered with maximal key value

參數

參數 說明
key 可呼叫;或 None;預設值為 None
這是在比較之前套用至每個元素的選用函式。
args 必要
要檢查的元素。

分鐘

unknown min(key=None, *args)

傳回所有指定引數中的最小一個。如果只提供一個位置引數,則必須為不可空白的可疊代引數。如果元素無法比較 (例如 int 與字串),或未設定引數時就會發生錯誤。
min(2, 5, 4) == 2
min([5, 6, 3]) == 3
min("six", "three", "four", key = len) == "six"  # the shortest
min([2, -2, -1, 1], key = abs) == -1  # the first encountered with minimal key value

參數

參數 說明
key 可呼叫;或 None;預設值為 None
這是在比較之前套用至每個元素的選用函式。
args 必要
要檢查的元素。

顯示

None print(sep=" ", *args)

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

我們不建議在正式版程式碼中使用 print,因為該程式碼會向使用者顯示垃圾內容。如要淘汰,請盡可能使用 fail() 處理重大錯誤。

參數

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

範圍

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

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

參數

參數 說明
start_or_stop int;必要
如果提供停靠站,則起始元素的值,否則為停靠站,實際起始值則為 0
stop_or_none int; 或 None;預設值為 None
,第一個項目的選用索引「不會」包含在結果清單中;清單會在到達 stop 前停止。
step int;預設值為 1
遞增 (預設值為 1)。但不一定是負值。

Repr

string repr(x)

將任何物件轉換為字串表示。很適合用於偵錯。
repr("ab") == '"ab"'

參數

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

已撤銷

list reversed(sequence)

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

參數

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

sorted

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

傳回新的排序清單,其中包含提供的可疊代序列的所有元素。如果有任何元素 x、y 與 x < y 的比較,可能會發生錯誤。元素會遞增排序,除非反向引數為 True,這時順序為遞減。排序功能穩定:比較相等的元素會保留原始相對順序。
sorted([3, 5, 4]) == [3, 4, 5]
sorted([3, 5, 4], reverse = True) == [5, 4, 3]
sorted(["two", "three", "four"], key = len) == ["two", "four", "three"]  # sort by length

參數

參數 說明
iterable iterable;必要
要排序的可疊代序列。
key 可呼叫;或 None;預設值為 None
這是在比較之前套用至每個元素的選用函式。
reverse bool;預設值為 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 iterable;預設為 ()
要轉換的物件。

類型

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-th tuple 包含每個引數序列或可疊代項目中的 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 需要
清單,並將其壓縮為 ZIP 檔案。