ไฟล์ Bazel ทั้งหมด

รายงานปัญหา Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

เมธอดที่ใช้ได้ในไฟล์ Bazel ทั้งหมด รวมถึงไฟล์ .bzl, BUILD, MODULE.bazel, VENDOR.bazel และ WORKSPACE

สมาชิก

แบบสัมบูรณ์

unknown abs(x)

แสดงผลค่าสัมบูรณ์ของตัวเลข (ตัวเลขที่ไม่ติดลบที่มีขนาดเท่ากัน)
abs(-2.3) == 2.3

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
x int หรือ float ต้องระบุ
ตัวเลข (int หรือ float)

ทั้งหมด

bool all(elements)

แสดงค่าเป็นจริงหากองค์ประกอบทั้งหมดประเมินเป็นจริงหรือหากคอลเล็กชันว่างเปล่า ระบบจะแปลงองค์ประกอบเป็นบูลีนโดยใช้ฟังก์ชัน bool
all(["hello", 3, True]) == True
all([-1, 0, 1]) == False

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
elements ต้องระบุ
สตริงหรือคอลเล็กชันขององค์ประกอบ

ใดๆ

bool any(elements)

แสดงค่าเป็นจริงหากองค์ประกอบอย่างน้อย 1 รายการประเมินเป็นจริง ระบบจะแปลงองค์ประกอบเป็นบูลีนโดยใช้ฟังก์ชัน bool
any([-1, 0, 1]) == True
any([False, 0, ""]) == False

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
elements ต้องระบุ
สตริงหรือคอลเล็กชันขององค์ประกอบ

บูลีน

bool bool(x=False)

ตัวสร้างสำหรับประเภทบูลีน โดยจะแสดงผล False หากออบเจ็กต์เป็น None, False, สตริงว่าง (""), ตัวเลข 0 หรือคอลเล็กชันว่าง (เช่น (), []) มิเช่นนั้นจะแสดงผล True

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
x ค่าเริ่มต้นคือ False
ตัวแปรที่จะแปลง

dict

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

สร้างพจนานุกรมจากอาร์กิวเมนต์ตำแหน่งที่ไม่บังคับและชุดอาร์กิวเมนต์คีย์เวิร์ดที่ไม่บังคับ ในกรณีที่ระบุคีย์เดียวกันหลายครั้ง ระบบจะใช้ค่าสุดท้าย รายการที่ระบุผ่านอาร์กิวเมนต์คีย์เวิร์ดจะถือว่าอยู่หลังรายการที่ระบุผ่านอาร์กิวเมนต์ตำแหน่ง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
pairs ค่าเริ่มต้นคือ []
พจนานุกรม หรือการวนซ้ำที่มีองค์ประกอบแต่ละรายการมีความยาว 2 (คีย์ ค่า)
kwargs ต้องระบุ
พจนานุกรมของรายการเพิ่มเติม

dir

list dir(x)

แสดงรายการสตริง ซึ่งเป็นชื่อของแอตทริบิวต์และเมธอดของออบเจ็กต์พารามิเตอร์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
x ต้องระบุ
ออบเจ็กต์ที่จะตรวจสอบ

แจกแจง

list enumerate(list, start=0)

แสดงรายการคู่ (ทูเพิล 2 องค์ประกอบ) พร้อมดัชนี (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(x=unbound)

แสดงผล x เป็นค่าลอยตัว
  • หาก x เป็นจำนวนทศนิยมอยู่แล้ว float จะแสดงผลโดยไม่มีการเปลี่ยนแปลง
  • หาก x เป็นบูลีน float จะแสดงผล 1.0 สำหรับ True และ 0.0 สำหรับ False
  • หาก x เป็นจำนวนเต็ม float จะแสดงค่าทศนิยมแบบจำกัดที่ใกล้เคียงที่สุดกับ x หรือแสดงข้อผิดพลาดหากขนาดใหญ่เกินไป
  • หาก x เป็นสตริง สตริงนั้นต้องเป็นค่าคงที่แบบลอยตัวที่ถูกต้อง หรือต้องเท่ากับ (ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) NaN, Inf หรือ Infinity โดยอาจมีเครื่องหมาย + หรือ - นำหน้าก็ได้
ค่าอื่นๆ จะทำให้เกิดข้อผิดพลาด หากไม่มีอาร์กิวเมนต์ 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 required
โครงสร้างที่มีการเข้าถึงแอตทริบิวต์
name string; required
ชื่อของแอตทริบิวต์โครงสร้าง
default ค่าเริ่มต้นคือ unbound
ค่าเริ่มต้นที่จะแสดงในกรณีที่ Struct ไม่มีแอตทริบิวต์ที่มีชื่อที่ระบุ

hasattr

bool hasattr(x, name)

แสดงผลเป็น True หากออบเจ็กต์ x มีแอตทริบิวต์หรือเมธอดของ name ที่ระบุ ไม่เช่นนั้นจะแสดงผลเป็น False ตัวอย่าง
hasattr(ctx.attr, "myattr")

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
x ต้องระบุ
ออบเจ็กต์ที่จะตรวจสอบ
name string required
ชื่อของแอตทริบิวต์

แฮช

int hash(value)

แสดงค่าแฮชสำหรับสตริง โดยจะคำนวณแบบดีเทอร์มินิสติกโดยใช้อัลกอริทึมเดียวกันกับ String.hashCode() ของ Java ซึ่งก็คือ
s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
ปัจจุบันระบบยังไม่รองรับการแฮชค่าอื่นๆ นอกเหนือจากสตริง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
value string; required
ค่าสตริงที่จะแฮช

int

int int(x, base=unbound)

แสดงผล x เป็นค่า int
  • หาก x เป็นจำนวนเต็มอยู่แล้ว 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 จะไม่มีการใช้คำนำหน้า และหากมีตัวเลขมากกว่า 1 หลัก ตัวเลขนำหน้าต้องไม่ใช่ 0 เพื่อหลีกเลี่ยงความสับสนระหว่างเลขฐานแปดกับเลขฐานสิบ ขนาดของตัวเลขที่แสดงด้วยสตริงต้องอยู่ภายในช่วงที่อนุญาตสำหรับประเภท int
  • หาก x เป็นจำนวนทศนิยม int จะแสดงผลค่าจำนวนเต็มของจำนวนทศนิยม โดยปัดเศษเข้าหาศูนย์ หาก x ไม่ใช่จำนวนจำกัด (NaN หรือ Infinity) จะถือว่าเป็นข้อผิดพลาด
ฟังก์ชันนี้จะทำงานไม่สำเร็จหาก x เป็นประเภทอื่น หรือหากค่าเป็นสตริงที่ไม่เป็นไปตามรูปแบบข้างต้น ฟังก์ชันนี้ไม่อนุญาตให้อาร์กิวเมนต์เป็น 0 และไม่อนุญาตให้มีช่องว่างที่ไม่จำเป็นสำหรับอาร์กิวเมนต์สตริง ซึ่งแตกต่างจากฟังก์ชัน int ของ Python

ตัวอย่าง

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)

แสดงผลความยาวของสตริง ลำดับ (เช่น รายการหรือทูเพิล) พจนานุกรม ชุด หรือออบเจ็กต์ที่วนซ้ำได้อื่นๆ

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
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; ค่าเริ่มต้นคือ []
ออบเจ็กต์ที่จะแปลง

สูงสุด

unknown max(key=None, *args)

แสดงผลอาร์กิวเมนต์ที่ใหญ่ที่สุดในอาร์กิวเมนต์ทั้งหมดที่ระบุ หากระบุอาร์กิวเมนต์ตามตำแหน่งเพียงรายการเดียว อาร์กิวเมนต์นั้นต้องเป็นอาร์กิวเมนต์ที่วนซ้ำได้ที่ไม่ว่าง หากองค์ประกอบเปรียบเทียบกันไม่ได้ (เช่น จำนวนเต็มกับสตริง) หรือหากไม่ได้ระบุอาร์กิวเมนต์ ระบบจะแสดงข้อผิดพลาด
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 required
ออบเจ็กต์ที่จะพิมพ์

ช่วง

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

สร้างรายการที่รายการต่างๆ จะมีค่าตั้งแต่ start ถึง stop โดยเพิ่มขึ้นทีละ 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; required
ค่าขององค์ประกอบเริ่มต้นหากระบุองค์ประกอบสิ้นสุดไว้ ไม่เช่นนั้นค่าขององค์ประกอบสิ้นสุดและค่าเริ่มต้นจริงจะเป็น 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; required
ลำดับที่วนซ้ำได้ (เช่น รายการ) ที่จะกลับ

ตั้งค่า

set set(elements=[])

สร้างชุดใหม่ที่มีองค์ประกอบที่ไม่ซ้ำกันของ iterable ที่ระบุ โดยจะเก็บลำดับการทำซ้ำไว้

หากเรียกใช้โดยไม่มีอาร์กิวเมนต์ set() จะแสดงผลชุดว่างใหม่

ตัวอย่างเช่น

set()                          # an empty set
set([3, 1, 1, 2])              # set([3, 1, 2]), a set of three elements
set({"k1": "v1", "k2": "v2"})  # set(["k1", "k2"]), a set of two elements

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
elements ค่าเริ่มต้นคือ []
ชุด ลำดับของค่าที่แฮชได้ หรือพจนานุกรม

จัดเรียง

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

แสดงรายการใหม่ที่จัดเรียงแล้วซึ่งมีองค์ประกอบทั้งหมดของลำดับที่วนซ้ำที่ระบุ ข้อผิดพลาดอาจเกิดขึ้นหากคู่ขององค์ประกอบ x, y ไม่สามารถเปรียบเทียบโดยใช้ x < y ระบบจะจัดเรียงองค์ประกอบจากน้อยไปมาก เว้นแต่ว่าอาร์กิวเมนต์ reverse เป็น 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; required
ลำดับที่วนซ้ำได้ที่จะจัดเรียง
key หรือ None; ค่าเริ่มต้นคือ None
ฟังก์ชันที่ไม่บังคับซึ่งใช้กับแต่ละองค์ประกอบก่อนการเปรียบเทียบ
reverse bool; ค่าเริ่มต้นคือ False
แสดงผลลัพธ์จากมากไปน้อย

str

string str(x)

แปลงออบเจ็กต์เป็นสตริง ซึ่งจะมีประโยชน์ในการแก้ไขข้อบกพร่อง
str("ab") == "ab"
str(8) == "8"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
x ต้องระบุ
ออบเจ็กต์ที่จะแปลง

ทูเพิล

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)

แสดงผลlistของtuple โดยที่ทูเพิลที่ i มีองค์ประกอบที่ i จากแต่ละลำดับหรือแต่ละรายการที่วนซ้ำของอาร์กิวเมนต์ รายการจะมีขนาดเท่ากับอินพุตที่สั้นที่สุด หากมีอาร์กิวเมนต์ที่วนซ้ำได้เพียงรายการเดียว ฟังก์ชันจะแสดงผลรายการของ 1-tuple หากไม่มีอาร์กิวเมนต์ ฟังก์ชันจะแสดงผลรายการว่าง ตัวอย่าง
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