مقدار encoding/value
مقدار پویا برای دادهای که شکلش را از پیش نمیدانید؛ زبان مشترک همهی قالبهای این گروه.
واردسازی کدگذاری.مقدار
مقدار نوع دادهی پویایی است که بستههای کدگذاری با هم به کار میبرند. هر مقدار یکی از اینهاست: تهی، منطقی، صحیح ۶۴ بیتی، اعشاری، رشته، آرایهای از مقدارها یا شیئی که رشتهها را به مقدارها نگاشت میکند؛ فیلد kind میگوید کدام. جیسون، یامل، تامل، مسجپک و بستههای دیگر به آن کدگشایی میکنند و از آن کدگذاری میکنند، و تبدیل قالب قالبها را از راه همین نوع به هم تبدیل میکند.
وقتی شکل داده هنگام نوشتن برنامه معلوم نیست سراغ مقدار بروید: بار یک وبهوک، پیکربندیای با بخشهای اختیاری، یا سندی که فقط از دستتان رد میشود. وقتی شکل داده ثابت است، کدگشایی مستقیم در یک ساختار (مثلاً با جیسون.واسریال سازی) کوتاهتر است و نوعها را هم برایتان بررسی میکند.
تابعها در چهار دسته
| کار | تابعها |
|---|---|
| ساختن مقدار | مقدار تهی، مقدار منطقی، مقدار صحیح، مقدار اعشاری، مقدار رشته، آرایه جدید، شیء جدید |
| پرسیدن نوع | تهی است، منطقی است، صحیح است، اعشاری است، عدد است، رشته است، آرایه است، شیء است |
| خواندن | به منطقی، به صحیح، به اعشاری، به رشته، طول آرایه، عضو آرایه، مقدار کلید، مقدار کلید با وضعیت، شیء دارد، کلیدهای شیء |
| تغییر دادن | افزودن به آرایه، تنظیم عضو آرایه، تنظیم کلید، حذف کلید، رونوشت مقدار، آزادسازی مقدار |
اشتباههای رایج
- خواندن هیچوقت نوع را بررسی نمیکند.
به رشتهبرای یک عدد""میدهد وبه صحیحبرای یک رشته صفر. وقتی داده از بیرون میآید، اول بارشته استیاعدد استبپرسید. - نبودن یعنی تهی، تا هر عمقی.
مقدار کلیدبرای کلید نبوده، یا برای چیزی که شیء نیست، تهی برمیگرداند؛ پس زنجیرهای مثلمقدار کلید(مقدار کلید(سند، "a")، "b")بیخطر است.عضو آرایهاینطور نیست: شمارهای بیرون ازطول آرایهبرنامه را متوقف میکند. - رونوشتها در بخشهایی مشترکاند. رونوشت یک شیء نگاشتش را با اصل شریک است، پس
تنظیم کلیدروی رونوشت اصل را هم عوض میکند. رونوشت یک آرایه عضوها را شریک است ولی طول را نه، پسافزودن به آرایهروی آرایهای که ازمقدار کلیدگرفتهاید تا وقتی آن را باتنظیم کلیدبرنگردانید گم میشود. برای رونوشت واقعیرونوشت مقداررا به کار ببرید. - ترتیب کلیدها به روش ساخت شیء بستگی دارد.
کلیدهای شیءکلیدها را به ترتیبی برمیگرداند که باتنظیم کلیدافزوده شدهاند، و برای سند کدگشاییشده به ترتیب متن آن. شیئی کهمقدار شیءاز روی یک نگاشت ساخته، به ترتیب خود آن نگاشت میآید. اگر خروجی باید الفبایی باشد، کلیدها را مرتب کنید یا باچیدن کلیدهاکدگذاری کنید.
راهنما: پیمودن کل یک سند
یک تابع بازگشتی روی مقدار از پس هر شکلی برمیآید: برای شیء هر کلید را میبیند، برای آرایه هر شماره را، و هر چیز دیگر یک برگ است. این تابع مسیر هر برگ را چاپ میکند؛ کاربردی برای ثبت بار یک وبهوک در گزارش یا مقایسهی سطربهسطر دو سند.
واردسازی کدگذاری.مقدار
واردسازی کدگذاری.جیسون
واردسازی کدگذاری.خطای کدگذاری
واردسازی مرتب سازی
واردسازی رشته
تابع پیمودن(م: مقدار.مقدار، مسیر: رشته):
اگر مقدار.شیء است(م):
کلیدها := مقدار.کلیدهای شیء(م)
مرتب سازی.مرتب سازی سریع(کلیدها)
هر ک در کلیدها:
پیمودن(مقدار.مقدار کلید(م، ک)، مسیر + "." + ک)
پایان
وگرنه مقدار.آرایه است(م):
تکرار مقدار.طول آرایه(م) در ای:
پیمودن(مقدار.عضو آرایه(م، ای)، مسیر + "[" + رشته.از عدد(ای) + "]")
پایان
وگرنه:
سرچاپ مسیر، "="، مقدار.رشته اشکال زدایی(م)
پایان
پایان
تابع ریشه:
ناپایا خطا := خطای کدگذاری.بدون خطا()
سند := جیسون.کدگشایی(`{"order": 1042, "customer": {"name": "Sara", "vip": true}, "lines": [{"sku": "BK-01", "qty": 2}, {"sku": "PN-07", "qty": 1}], "note": null}`، خطا)
پیمودن(سند، "$")
پایانکلیدهای شیء کلیدها را به ترتیب افزوده شدن برمیگرداند، پس سند کدگشاییشده ترتیب متن خود را نگه میدارد. این برنامه آنها را با مرتب سازی.مرتب سازی سریع مرتب میکند تا هر ورودی با ترتیب الفبایی چاپ شود. رشته اشکال زدایی هر برگ را همراه نوعش نشان میدهد.
راهنما: ساختن بار با فیلدهای اختیاری
یک ساختار همیشه همهی فیلدهایش را مینویسد. وقتی برخی فیلدها باید فقط در صورت داشتن مقدار بیایند، همانطور که بسیاری از APIهای HTTP انتظار دارند، به جای ساختار یک شیء مقدار بسازید و فقط آنچه دارید را تنظیم کنید. جیسون.کدگذاری با چیدن کلیدها آن را به ترتیبی پایدار چاپ میکند.
واردسازی کدگذاری.مقدار
واردسازی کدگذاری.جیسون
تابع بار(نام: رشته، رایانامه: رشته، سن: صحیح، برچسبها: وکتور<رشته>): مقدار.مقدار:
ناپایا م := مقدار.شیء جدید()
مقدار.تنظیم کلید(م، "name"، مقدار.مقدار رشته(نام))
اگر رایانامه != "":
مقدار.تنظیم کلید(م، "email"، مقدار.مقدار رشته(رایانامه))
پایان
اگر سن > ۰:
مقدار.تنظیم کلید(م، "age"، مقدار.مقدار صحیح(سن))
پایان
اگر برچسبها.طول() > ۰:
ناپایا آرایه := مقدار.آرایه جدید()
هر ب در برچسبها:
مقدار.افزودن به آرایه(آرایه، مقدار.مقدار رشته(ب))
پایان
مقدار.تنظیم کلید(م، "tags"، آرایه)
پایان
برگشت م
پایان
تابع ریشه:
گزینهها := جیسون.گزینههای جیسون { چیدن کلیدها = درست }
ناپایا برچسبها := وکتور {} برگردان وکتور<رشته>
سرچاپ جیسون.کدگذاری(بار("Sara"، ""، ۰، برچسبها)، گزینهها)
برچسبها.بیفزا("beta")
برچسبها.بیفزا("vip")
سرچاپ جیسون.کدگذاری(بار("Reza"، "[email protected]"، ۴۱، برچسبها)، گزینهها)
پایانراهنما: تغییر یک فیلد تودرتو
برای تغییر چیزی در عمق یک سند کدگشاییشده، بخش درونی را با مقدار کلید بگیرید، تغییرش دهید و با تنظیم کلید سر جایش بگذارید. برای شیءها این برگرداندن بهطور دقیق لازم نیست، چون نگاشت مشترک است، ولی برای آرایهها لازم است: برنامهی زیر نشان میدهد قلم تازهی سفارش تا وقتی آرایه برنگردد دیده نمیشود.
واردسازی کدگذاری.مقدار
واردسازی کدگذاری.جیسون
واردسازی کدگذاری.خطای کدگذاری
تابع قلم(کد کالا: رشته، تعداد: صحیح): مقدار.مقدار:
ناپایا ق := مقدار.شیء جدید()
مقدار.تنظیم کلید(ق، "sku"، مقدار.مقدار رشته(کد کالا))
مقدار.تنظیم کلید(ق، "qty"، مقدار.مقدار صحیح(تعداد))
برگشت ق
پایان
تابع ریشه:
ناپایا خطا := خطای کدگذاری.بدون خطا()
ناپایا سفارش := جیسون.کدگشایی(`{"id": 1042, "customer": {"name": "Sara"}, "lines": [{"sku": "BK-01", "qty": 2}]}`، خطا)
ناپایا مشتری := مقدار.مقدار کلید(سفارش، "customer")
مقدار.تنظیم کلید(مشتری، "tier"، مقدار.مقدار رشته("gold"))
ناپایا قلمها := مقدار.مقدار کلید(سفارش، "lines")
مقدار.افزودن به آرایه(قلمها، قلم("PN-07"، ۱))
سرچاپ "پیش از تنظیم کلید:"، مقدار.طول آرایه(مقدار.مقدار کلید(سفارش، "lines"))، "قلم"
مقدار.تنظیم کلید(سفارش، "lines"، قلمها)
سرچاپ "پس از تنظیم کلید:"، مقدار.طول آرایه(مقدار.مقدار کلید(سفارش، "lines"))، "قلم"
سرچاپ جیسون.کدگذاری(سفارش، جیسون.گزینههای جیسون { چیدن کلیدها = درست })
شهر := مقدار.مقدار کلید(مقدار.مقدار کلید(سفارش، "shipping")، "city")
سرچاپ "شهر ارسال داده شده:"، وارونه مقدار.تهی است(شهر)، "[" + مقدار.به رشته(شهر) + "]"
پایاناگر همیشه بخش تغییرکرده را با تنظیم کلید برگردانید، کد برای هر دو نوع درست است و اگر پیادهسازی عوض شود هم درست میماند. سطر آخر فیلدی از شیء shipping را میخواند که اصلاً وجود ندارد: زنجیرهی مقدار کلیدها تهی برمیگرداند و به رشته رشتهی خالی میدهد، بدون هیچ خرابی.
راهنما: ادغام عمیق تنظیمها
تنظیمها اغلب لایهلایه میرسند: اول پیشفرضهای درونی، بعد پروندهای برای هر پایگاه. ادغام عمیق هر پیشفرضی را که پروندهی پایگاه از آن نامی نبرده نگه میدارد و فقط آنچه را نام برده، سطح به سطح، جایگزین میکند. آرایهها و مقدارهای ساده در لایهی رویی یکجا برندهاند.
واردسازی کدگذاری.مقدار
واردسازی کدگذاری.جیسون
واردسازی کدگذاری.خطای کدگذاری
تابع ادغام(پایه: مقدار.مقدار، رو: مقدار.مقدار): مقدار.مقدار:
اگر وارونه مقدار.شیء است(پایه) یا وارونه مقدار.شیء است(رو):
برگشت مقدار.رونوشت مقدار(رو)
پایان
ناپایا نتیجه := مقدار.رونوشت مقدار(پایه)
هر ک در مقدار.کلیدهای شیء(رو):
تازه := مقدار.مقدار کلید(رو، ک)
اگر مقدار.شیء دارد(نتیجه، ک):
مقدار.تنظیم کلید(نتیجه، ک، ادغام(مقدار.مقدار کلید(نتیجه، ک)، تازه))
وگرنه:
مقدار.تنظیم کلید(نتیجه، ک، مقدار.رونوشت مقدار(تازه))
پایان
پایان
برگشت نتیجه
پایان
تابع ریشه:
ناپایا خطا := خطای کدگذاری.بدون خطا()
پیش فرضها := جیسون.کدگشایی(`{"server": {"host": "0.0.0.0", "port": 8080}, "log": {"level": "info", "json": false}, "plugins": ["auth"]}`، خطا)
پایگاه := جیسون.کدگشایی(`{"server": {"port": 9000}, "log": {"level": "debug"}, "plugins": ["auth", "cache"]}`، خطا)
پیکر := ادغام(پیش فرضها، پایگاه)
سرچاپ جیسون.کدگذاری(پیکر، جیسون.گزینههای جیسون { تورفتگی = " "، چیدن کلیدها = درست })
سرچاپ "پیشفرضها دستنخورده:"، مقدار.به صحیح(مقدار.مقدار کلید(مقدار.مقدار کلید(پیش فرضها، "server")، "port"))
پایانتابع آنچه را نگه میدارد رونوشت میکند، پس پیش فرضها پس از کار همان است. بدون این رونوشتها نتیجه شیءهایش را با ورودیها شریک میشد، همانطور که بخش بعد نشان میدهد.
راهنما: رونوشت، تبدیل و کلید نبوده
سپردن یک مقدار به متغیری تازه محتوایش را رونوشت نمیکند: فیلدهای یک شیء در نگاشتی مشترکاند، پس تغییر از راه رونوشت در اصل هم دیده میشود. هر وقت رونوشتی مستقل لازم دارید رونوشت مقدار را صدا بزنید و پس از کار با آزادسازی مقدار آزادش کنید. فقط مقدارهایی را آزاد کنید که چیز دیگری در آنها شریک نیست، چون آزاد کردن یک رونوشت ساده نگاشت اصل را هم آزاد میکند.
واردسازی کدگذاری.مقدار
تابع ریشه:
ناپایا الف := مقدار.شیء جدید()
مقدار.تنظیم کلید(الف، "n"، مقدار.مقدار صحیح(۱))
ناپایا مشترک := الف
مقدار.تنظیم کلید(مشترک، "n"، مقدار.مقدار صحیح(۲))
سرچاپ "پس از ویرایش رونوشت ساده:"، مقدار.به صحیح(مقدار.مقدار کلید(الف، "n"))
ناپایا جدا := مقدار.رونوشت مقدار(الف)
مقدار.تنظیم کلید(جدا، "n"، مقدار.مقدار صحیح(۳))
سرچاپ "پس از ویرایش رونوشت کامل:"، مقدار.به صحیح(مقدار.مقدار کلید(الف، "n"))
سرچاپ "به صحیح ۲.۹:"، مقدار.به صحیح(مقدار.مقدار اعشاری(۲.۹))
سرچاپ "به اعشاری ۳:"، مقدار.به اعشاری(مقدار.مقدار صحیح(۳))
سرچاپ "به صحیح \"5\":"، مقدار.به صحیح(مقدار.مقدار رشته("5"))
سرچاپ "۱ با ۱.۰ یکسان است:"، مقدار.یکسان است(مقدار.مقدار صحیح(۱)، مقدار.مقدار اعشاری(۱.۰))
ناپایا یافت شد := نادرست
_ := مقدار.مقدار کلید با وضعیت(الف، "missing"، یافت شد)
سرچاپ "کلید نبوده یافت شد:"، یافت شد
مقدار.آزادسازی مقدار(جدا)
پایانبه صحیحعدد اعشاری را رو به صفر میبُرد وبه اعشاریعدد صحیح را گسترش میدهد، ولی هیچکدام متن را تجزیه نمیکنند: رشته ۰ میدهد. اول نوع را باصحیح است،عدد استیارشته استبررسی کنید.یکسان استنوعها را هم مقایسه میکند، پس عدد صحیح ۱ و اعشاری ۱.۰ دو مقدار متفاوتاند.مقدار کلیدبرای کلید نبوده یک مقدار تهی میدهد؛مقدار کلید با وضعیتافزون بر آن میگوید کلید بوده یا نه.
گونهها
مقدار Value
ساختار مقدار| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| نوع | kind | صحیح | نوع مقدار؛ یکی از ثابتهای نوع. |
| مقدار منطقی | b | منطقی = نادرست | مقدار منطقی. |
| مقدار صحیح | i | صحیح۶۴ = 0 | مقدار صحیح. |
| مقدار اعشاری | n | اعشار۶۴ = 0 | مقدار اعشاری. |
| مقدار رشته | s | رشته = "" | مقدار رشته. |
| عضوهای آرایه | arr | وکتور<مقدار> | عضوهای آرایه. |
| عضوهای شیء | obj | نگاشت<رشته، مقدار> | کلیدها و مقدارهای شیء. |
| ترتیب کلیدها | order | صحیح۶۴ = 0 | دستگیرهی داخلی فهرستی که ترتیب افزوده شدن کلیدها به یک شیء با تنظیم کلید را ثبت میکند. حذف کلید آن را بهروز نگه میدارد. مستقیم از آن استفاده نکنید؛ کلیدهای شیء آن را میخواند. |
واردسازی کدگذاری.مقدار
تابع ریشه:
ناپایا کاربر := مقدار.شیء جدید()
مقدار.تنظیم کلید(کاربر، "name"، مقدار.مقدار رشته("نرگس"))
مقدار.تنظیم کلید(کاربر، "age"، مقدار.مقدار صحیح(۳۴))
مقدار.تنظیم کلید(کاربر، "height"، مقدار.مقدار اعشاری(۱.۶۸))
مقدار.تنظیم کلید(کاربر، "admin"، مقدار.مقدار منطقی(نادرست))
مقدار.تنظیم کلید(کاربر، "phone"، مقدار.مقدار تهی())
ناپایا زبانها := مقدار.آرایه جدید()
مقدار.افزودن به آرایه(زبانها، مقدار.مقدار رشته("fa"))
مقدار.افزودن به آرایه(زبانها، مقدار.مقدار رشته("en"))
مقدار.تنظیم عضو آرایه(زبانها، ۱، مقدار.مقدار رشته("ar"))
مقدار.تنظیم کلید(کاربر، "langs"، زبانها)
سرچاپ مقدار.رشته اشکال زدایی(کاربر)
سرچاپ مقدار.طول شیء(کاربر)، مقدار.شیء دارد(کاربر، "age")، مقدار.کلیدهای شیء(کاربر)
سرچاپ مقدار.به رشته(مقدار.مقدار کلید(کاربر، "name"))، مقدار.به صحیح(مقدار.مقدار کلید(کاربر، "age"))، مقدار.به اعشاری(مقدار.مقدار کلید(کاربر، "height"))، مقدار.به منطقی(مقدار.مقدار کلید(کاربر، "admin"))
ز := مقدار.مقدار کلید(کاربر، "langs")
سرچاپ مقدار.آرایه است(ز)، مقدار.طول آرایه(ز)، مقدار.به رشته(مقدار.عضو آرایه(ز، ۱))
ناپایا هست := نادرست
_ := مقدار.مقدار کلید با وضعیت(کاربر، "email"، هست)
سرچاپ هست
ت := مقدار.مقدار کلید(کاربر، "phone")
سرچاپ مقدار.تهی است(ت)، مقدار.منطقی است(ت)، مقدار.صحیح است(مقدار.مقدار صحیح(۱))، مقدار.اعشاری است(مقدار.مقدار اعشاری(۱.۰))، مقدار.عدد است(مقدار.مقدار صحیح(۱))
سرچاپ مقدار.رشته است(مقدار.مقدار رشته(""))، مقدار.شیء است(کاربر)، ت.نوع == مقدار.نوع تهی، مقدار.نوع شیء
ناپایا ک := مقدار.رونوشت مقدار(کاربر)
سرچاپ مقدار.یکسان است(ک، کاربر)
حذف شد := مقدار.حذف کلید(ک، "phone")
سرچاپ حذف شد، مقدار.یکسان است(ک، کاربر)
ناپایا عددها := وکتور {} برگردان وکتور<مقدار.مقدار>
عددها.بیفزا(مقدار.مقدار صحیح(۱))
ناپایا فیلدها := نگاشت {} برگردان نگاشت<رشته، مقدار.مقدار>
فیلدها.درج("x"، مقدار.مقدار آرایه(عددها))
سرچاپ مقدار.رشته اشکال زدایی(مقدار.مقدار شیء(فیلدها))
مقدار.آزادسازی مقدار(ک)
پایانپایاها و متغیرها
نوع تهی KindNull
پایا نوع تهی: صحیح۳۲ = 0نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
نوع منطقی KindBool
پایا نوع منطقی: صحیح۳۲ = 1نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
نوع صحیح KindInt
پایا نوع صحیح: صحیح۳۲ = 2نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
نوع اعشاری KindFloat
پایا نوع اعشاری: صحیح۳۲ = 3نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
نوع رشته KindString
پایا نوع رشته: صحیح۳۲ = 4نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
نوع آرایه KindArray
پایا نوع آرایه: صحیح۳۲ = 5نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
نوع شیء KindObject
پایا نوع شیء: صحیح۳۲ = 6نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
تابعها
رشته اشکال زدایی ToDebugString
تابع رشته اشکال زدایی(v: مقدار): رشتهobject{name: string(علی)}؛ برای اشکالزدایی.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
مقدار تهی ValueNull
تابع مقدار تهی(): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
مقدار منطقی ValueBool
تابع مقدار منطقی(b: منطقی): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
مقدار صحیح ValueInt
تابع مقدار صحیح(i: صحیح۶۴): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
مقدار اعشاری ValueFloat
تابع مقدار اعشاری(n: اعشار۶۴): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
مقدار رشته ValueString
تابع مقدار رشته(s: رشته): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
مقدار آرایه ValueArray
تابع مقدار آرایه(items: وکتور<مقدار>): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
مقدار شیء ValueObject
تابع مقدار شیء(fields: نگاشت<رشته، مقدار>): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
آرایه جدید NewValueArray
تابع آرایه جدید(): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
شیء جدید NewValueObject
تابع شیء جدید(): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
تهی است IsNull
تابع تهی است(v: مقدار): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
منطقی است IsBool
تابع منطقی است(v: مقدار): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
صحیح است IsInt
تابع صحیح است(v: مقدار): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
اعشاری است IsFloat
تابع اعشاری است(v: مقدار): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
عدد است IsNumber
تابع عدد است(v: مقدار): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
رشته است IsString
تابع رشته است(v: مقدار): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
آرایه است IsArray
تابع آرایه است(v: مقدار): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
شیء است IsObject
تابع شیء است(v: مقدار): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
به منطقی AsBool
تابع به منطقی(v: مقدار): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
به صحیح AsInt
تابع به صحیح(v: مقدار): صحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
به اعشاری AsFloat
تابع به اعشاری(v: مقدار): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
به رشته AsString
تابع به رشته(v: مقدار): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
طول آرایه ArrayLen
تابع طول آرایه(v: مقدار): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
عضو آرایه ArrayGet
تابع عضو آرایه(v: مقدار، i: صحیح): مقدارi؛ شمارهای بیرون از بازهی 0 تا طول آرایه - 1 برنامه را متوقف میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
تنظیم عضو آرایه ArraySet
تابع تنظیم عضو آرایه(v &: مقدار، i: صحیح، item: مقدار)i را جایگزین میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
افزودن به آرایه ArrayPush
تابع افزودن به آرایه(v &: مقدار، item: مقدار)مقدار کلید یا عضو آرایه گرفتهاید، آن را برگردانید تا والدش طول تازه را ببیند.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
طول شیء ObjectLen
تابع طول شیء(v: مقدار): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
شیء دارد ObjectHas
تابع شیء دارد(v: مقدار، key: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
مقدار کلید ObjectGet
تابع مقدار کلید(v: مقدار، key: رشته): مقدارv شیء نباشد، تهی.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
مقدار کلید با وضعیت ObjectGetOk
تابع مقدار کلید با وضعیت(v: مقدار، key: رشته، ok &: منطقی): مقدارok اینکه کلید بود یا نه؛ برای جدا کردن «نبود» از «تهی».نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
تنظیم کلید ObjectSet
تابع تنظیم کلید(v &: مقدار، key: رشته، item: مقدار)نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
حذف کلید ObjectDelete
تابع حذف کلید(v &: مقدار، key: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
کلیدهای شیء ObjectKeys
تابع کلیدهای شیء(v: مقدار): وکتور<رشته>تنظیم کلید افزوده شدهاند به ترتیب افزوده شدن میآیند؛ کلیدهای شیئی که مقدار شیء از روی یک نگاشت ساخته، به ترتیب خود آن نگاشت میآیند.نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
رونوشت مقدار ValueClone
تابع رونوشت مقدار(v: مقدار): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
آزادسازی مقدار ValueFree
تابع آزادسازی مقدار(v &: مقدار)نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam
یکسان است Equal
تابع یکسان است(a: مقدار، b: مقدار): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-value-Value.salam