Stale translation: the English source changed after this draft. Treat the English edition as the authority.
यह पृष्ठ मशीन-जनित मसौदा है और अभी मानव समीक्षा नहीं हुई है। कोड उदाहरण, आदेश और पहचानकर्ता अंग्रेज़ी में रहते हैं।
डेटा और त्रुटियाँ#
मैं संग्रहों और डोमेन अवस्थाओं को स्पष्ट दर्शाता हूँ। ऐसा प्रकार चुनें जिससे अवैध अवस्थाएँ व्यक्त करना कठिन हो।
सरणियाँ और टपल#
let values: array<int> = [10, 20, 30]
let first = (at values 0)
(array_set values 1 25)
let pair: (int, string) = (7, "seven")
let number = pair.0
सरणी सीमा-जाँचित हैं। कुछ सरणी फलन भंडारण बदलते हैं और void लौटाते हैं; अन्य नई सरणी लौटाते हैं। परिचित नाम से स्वामित्व न अनुमान करें; Builtins देखें।
स्ट्रक्ट और एनम#
struct Point {
x: int
y: int
}
enum Direction {
North
South
East
West
}
let origin = Point { x: 0, y: 0 }
नामित प्रकार UpperCamelCase उपयोग करते हैं। मान और फलन snake_case उपयोग करते हैं।
यूनियन और मैच#
union ParseResult {
Value(int)
Error(string)
}
fn unwrap_or(result: ParseResult, fallback: int) -> int {
return (match result {
Value(value) => value
Error(_) => fallback
})
}
shadow unwrap_or {
assert (== (unwrap_or Value(7) 0) 7)
assert (== (unwrap_or Error("bad") 3) 3)
}
कॉलर संभाल सकें ऐसी विफलताओं के लिए Result<T, E> या अन्य स्पष्ट यूनियन उपयोग करें। जहाँ आप पुनर्प्राप्त कर सकें या संदर्भ जोड़ सकें वहाँ वेरिएंट मैच करें। पोस्टफिक्स ? ऑपरेटर संगत परिणाम त्रुटियाँ प्रचारित करता है; सफाई या संदर्भ जब मायने रखे तब स्पष्ट match उपयोग करें।
स्ट्रिंग और द्विआधारी स्ट्रिंग#
string पाठ है। bstring लंबाई-स्पष्ट द्विआधारी डेटा है और शून्य बाइट रख सकता है। रूपांतरण और यूनिकोड व्यवहार प्रत्येक बिगिल्टिन या मॉड्यूल पर दस्तावेज़ी हैं। यह न मानें कि बाइट अनुक्रमणिकाएँ यूनिकोड वर्ण अनुक्रमणिकाएँ हैं।
संग्रह#
बिगिल्टिन सरणियाँ और हैश मैप C-आधारित संग्रह मॉड्यूल से अलग हैं। जनित Builtins पृष्ठ सटीक बिगिल्टिन वर्तनी सूचीबद्ध करता है। जनित Modules पृष्ठ मॉड्यूल घोषणाएँ और मूल निर्माण सीमाएँ सूचीबद्ध करता है।