کتابخانه‌ی استاندارد · کدگذاری و داده

یامل encoding/yaml

خواندن یامل با مسیر، ساختن و نوشتن آن، و تبدیل به جیسون.

واردسازی کدگذاری.یامل
در این صفحه
  1. روال‌ها

یامل قالب رایج پرونده‌های پیکربندی است. این بسته یامل را درونی به جیسون تبدیل می‌کند؛ برای همین، هم روال‌های خواندنش ساده‌اند و هم با بسته‌ی جیسون جور می‌شود.

روال‌های خواندن یک مسیر می‌گیرند: کلیدها با نقطه از هم جدا می‌شوند و شماره‌ی عضو فهرست داخل کروشه می‌آید، مثل app.hosts[1]. اگر مسیر پیدا نشود، رشته‌ی خالی یا صفر برمی‌گردد؛ برای تشخیص نبودن، دارد را به کار ببرید.

روال‌ها

کدگشایی Decode

روال کدگشایی(text: رشته، err &: encerr.EncodingError): value.Value
یامل را به یک مقدار پویا تبدیل می‌کند.
encoding-yaml-Build.salam
واردسازی کدگذاری.یامل
واردسازی کدگذاری.مقدار
واردسازی کدگذاری.خطای کدگذاری
واردسازی رشته

روال ریشه:
    ناپایا اعضا := وکتور {} برگردان وکتور<رشته>
    اعضا.بیفزا(یامل.عضو("name"، "salam"))
    اعضا.بیفزا(یامل.عضو عدد("port"، ۸۰۸۰))
    اعضا.بیفزا(یامل.عضو منطقی("debug"، نادرست))
    اعضا.بیفزا(یامل.عضو اعشار("ratio"، ۰.۲۵))
    ناپایا میزبان‌ها := وکتور {} برگردان وکتور<رشته>
    میزبان‌ها.بیفزا(یامل.رشته یامل("a: b"))
    اعضا.بیفزا(یامل.عضو خام("hosts"، یامل.آرایه(میزبان‌ها)))
    شیء := یامل.شیء(اعضا)
    سرچاپ شیء
    سرچاپ یامل.برونریزی(شیء)
    سرچاپ رشته.شامل است(یامل.برونریزی تب(`{"a": {"b": 1}}`)، "\tb: 1")، یامل.برونریزی سفارشی(`{"a": [1]}`، "    ")
    سرچاپ یامل.اسکیپ("یک: دو")
    سرچاپ یامل.تجزیه("x: 1")
    ناپایا خ := خطای کدگذاری.بدون خطا()
    م := یامل.کدگشایی("شهر: تهران\nجمعیت: 9000000\n"، خ)
    سرچاپ مقدار.به صحیح(مقدار.مقدار کلید(م، "جمعیت"))
    سرچاپ یامل.کدگذاری(م)
پایان
خروجی{"name": "salam", "port": 8080, "debug": false, "ratio": 0.25, "hosts": ["a: b"]} name: salam port: 8080 debug: false ratio: 0.25 hosts: - "a: b" true a: - 1 یک: دو {"x": 1} 9000000 جمعیت: 9000000 شهر: تهران

کدگذاری 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: رشته): رشته
مقدار یک مسیر به شکل متن؛ رشته‌ها بدون نقل‌قول.
encoding-yaml-Query.salam
واردسازی کدگذاری.یامل

روال ریشه:
    متن := "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").طول()
پایان
خروجیtrue true false salam 8080 true 0.5 list 2 b.example ["name", "port", "debug", "ratio", "hosts"] true false {"app": {"name": "salam", "port": 8080, "debug": true, "ratio": 0.5, "hosts": ["a.example", "b.example"]}} 2

دارد 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