یامل encoding/yaml
خواندن یامل با مسیر، ساختن و نوشتن آن، و تبدیل به جیسون.
واردسازی کدگذاری.یامل
یامل قالب رایج پروندههای پیکربندی است. این بسته یامل را درونی به جیسون تبدیل میکند؛ برای همین، هم روالهای خواندنش سادهاند و هم با بستهی جیسون جور میشود.
روالهای خواندن یک مسیر میگیرند: کلیدها با نقطه از هم جدا میشوند و شمارهی عضو فهرست داخل کروشه میآید، مثل app.hosts[1]. اگر مسیر پیدا نشود، رشتهی خالی یا صفر برمیگردد؛ برای تشخیص نبودن، دارد را به کار ببرید.
روالها
کدگشایی Decode
روال کدگشایی(text: رشته، err &: encerr.EncodingError): value.Valueمقدار پویا تبدیل میکند.واردسازی کدگذاری.یامل
واردسازی کدگذاری.مقدار
واردسازی کدگذاری.خطای کدگذاری
واردسازی رشته
روال ریشه:
ناپایا اعضا := وکتور {} برگردان وکتور<رشته>
اعضا.بیفزا(یامل.عضو("name"، "salam"))
اعضا.بیفزا(یامل.عضو عدد("port"، ۸۰۸۰))
اعضا.بیفزا(یامل.عضو منطقی("debug"، نادرست))
اعضا.بیفزا(یامل.عضو اعشار("ratio"، ۰.۲۵))
ناپایا میزبانها := وکتور {} برگردان وکتور<رشته>
میزبانها.بیفزا(یامل.رشته یامل("a: b"))
اعضا.بیفزا(یامل.عضو خام("hosts"، یامل.آرایه(میزبانها)))
شیء := یامل.شیء(اعضا)
سرچاپ شیء
سرچاپ یامل.برونریزی(شیء)
سرچاپ رشته.شامل است(یامل.برونریزی تب(`{"a": {"b": 1}}`)، "\tb: 1")، یامل.برونریزی سفارشی(`{"a": [1]}`، " ")
سرچاپ یامل.اسکیپ("یک: دو")
سرچاپ یامل.تجزیه("x: 1")
ناپایا خ := خطای کدگذاری.بدون خطا()
م := یامل.کدگشایی("شهر: تهران\nجمعیت: 9000000\n"، خ)
سرچاپ مقدار.به صحیح(مقدار.مقدار کلید(م، "جمعیت"))
سرچاپ یامل.کدگذاری(م)
پایانکدگذاری Encode
روال کدگذاری(v: value.Value): رشتهمقدار را به یامل تبدیل میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
برونریزی سفارشی DumpWith
روال برونریزی سفارشی(text: رشته، unit: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
برونریزی Dump
روال برونریزی(text: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
برونریزی تب DumpTabs
روال برونریزی تب(text: رشته): رشتهبرونریزی، با تب.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
اسکیپ Escape
روال اسکیپ(s: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
رشته یامل Str
روال رشته یامل(value: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
عضو Member
روال عضو(key: رشته، value: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
عضو عدد MemberInt
روال عضو عدد(key: رشته، value: صحیح۶۴): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
عضو منطقی MemberBool
روال عضو منطقی(key: رشته، value: منطقی): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
عضو اعشار MemberFloat
روال عضو اعشار(key: رشته، value: اعشار۶۴): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
عضو خام MemberRaw
روال عضو خام(key: رشته، raw: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
شیء Object
روال شیء(members: وکتور<رشته>): رشتهبرونریزی یامل میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
آرایه Array
روال آرایه(items: وکتور<رشته>): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
دریافت Get
روال دریافت(text: رشته، path: رشته): رشتهواردسازی کدگذاری.یامل
روال ریشه:
متن := "app:\n name: salam\n port: 8080\n debug: true\n ratio: 0.5\n hosts:\n - a.example\n - b.example\n"
سرچاپ یامل.معتبر(متن)، یامل.دارد(متن، "app.name")، یامل.دارد(متن، "app.user")
سرچاپ یامل.دریافت(متن، "app.name")، یامل.دریافت عدد(متن، "app.port")، یامل.دریافت منطقی(متن، "app.debug")، یامل.دریافت اعشار(متن، "app.ratio")
سرچاپ یامل.نوع(متن، "app.hosts")، یامل.طول(متن، "app.hosts")، یامل.دریافت(متن، "app.hosts[1]")
سرچاپ یامل.کلیدها(متن، "app")
ناپایا لازم := وکتور {} برگردان وکتور<رشته>
لازم.بیفزا("app")
سرچاپ یامل.دارد کلیدها(متن، لازم)
لازم.بیفزا("db")
سرچاپ یامل.دارد کلیدها(متن، لازم)
سرچاپ یامل.به جیسون(متن)
سرچاپ یامل.تفکیک کردن اسناد("a: 1\n---\nb: 2\n").طول()
پایاندارد Has
روال دارد(text: رشته، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam
دریافت عدد GetInt
روال دریافت عدد(text: رشته، path: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam
دریافت اعشار GetFloat
روال دریافت اعشار(text: رشته، path: رشته): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam
دریافت منطقی GetBool
روال دریافت منطقی(text: رشته، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam
نوع TypeOf
روال نوع(text: رشته، path: رشته): رشتهmap، list، string، int، float، bool، null یا اگر نباشد none.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam
طول Len
روال طول(text: رشته، path: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam
کلیدها Keys
روال کلیدها(text: رشته، path: رشته): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam
دارد کلیدها HasKeys
روال دارد کلیدها(text: رشته، required: وکتور<رشته>): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam
تجزیه Parse
روال تجزیه(text: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Build.salam
به جیسون ToJSON
روال به جیسون(text: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam
معتبر Valid
روال معتبر(text: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam
تفکیک کردن اسناد SplitDocuments
روال تفکیک کردن اسناد(text: رشته): وکتور<رشته>---) را به سندهای جدا تقسیم میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-yaml-Query.salam