مقدار encoding/value
مقدار پویا برای دادهای که شکلش را از پیش نمیدانید؛ زبان مشترک همهی قالبهای این گروه.
واردسازی کدگذاری.مقدار
وقتی جیسونی را میخوانید که شکلش را از پیش نمیدانید، نمیشود آن را در یک ساختار ثابت ریخت. مقدار برای همین است: هر مقدار نوعش را با خودش دارد و میتواند آرایه یا شیئی از مقدارهای دیگر باشد.
جیسون، یامل، تامل، مسجپک، سی اس وی و اکسامال همه میتوانند به مقدار تبدیل شوند و از آن ساخته شوند؛ بستهی تبدیل قالب از همین برای تبدیل قالبها به یکدیگر استفاده میکند.
گونهها
مقدار Value
ساختار مقدار| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| kind | kind | صحیح | نوع مقدار؛ یکی از ثابتهای نوع. |
| b | b | منطقی = نادرست | مقدار منطقی. |
| i | i | صحیح۶۴ = 0 | مقدار صحیح. |
| n | n | اعشار۶۴ = 0 | مقدار اعشاری. |
| s | s | رشته = "" | مقدار رشته. |
| arr | arr | وکتور<مقدار> | عضوهای آرایه. |
| obj | obj | نگاشت<رشته، مقدار> | کلیدها و مقدارهای شیء. |
واردسازی کدگذاری.مقدار
روال ریشه:
ناپایا کاربر := مقدار.شیء جدید()
مقدار.تنظیم کلید(کاربر، "name"، مقدار.مقدار رشته("نرگس"))
مقدار.تنظیم کلید(کاربر، "age"، مقدار.مقدار صحیح(۳۴))
مقدار.تنظیم کلید(کاربر، "height"، مقدار.مقدار اعشاری(۱.۶۸))
مقدار.تنظیم کلید(کاربر، "admin"، مقدار.مقدار منطقی(نادرست))
مقدار.تنظیم کلید(کاربر، "phone"، مقدار.مقدار تهی())
ناپایا زبانها := مقدار.آرایه جدید()
مقدار.افزودن به آرایه(زبانها، مقدار.مقدار رشته("fa"))
مقدار.افزودن به آرایه(زبانها، مقدار.مقدار رشته("en"))
مقدار.تنظیم عضو آرایه(زبانها، ۱، مقدار.مقدار رشته("ar"))
مقدار.تنظیم کلید(کاربر، "langs"، زبانها)
سرچاپ مقدار.رشته اشکال زدایی(کاربر)
سرچاپ مقدار.طول شیء(کاربر)، مقدار.شیء دارد(کاربر، "age")، مقدار.کلیدهای شیء(کاربر)
سرچاپ مقدار.به رشته(مقدار.مقدار کلید(کاربر، "name"))، مقدار.به صحیح(مقدار.مقدار کلید(کاربر، "age"))، مقدار.به اعشاری(مقدار.مقدار کلید(کاربر، "height"))، مقدار.به منطقی(مقدار.مقدار کلید(کاربر، "admin"))
ز := مقدار.مقدار کلید(کاربر، "langs")
سرچاپ مقدار.آرایه است(ز)، مقدار.طول آرایه(ز)، مقدار.به رشته(مقدار.عضو آرایه(ز، ۱))
ناپایا هست := نادرست
_ := مقدار.مقدار کلید با وضعیت(کاربر، "email"، هست)
سرچاپ هست
ت := مقدار.مقدار کلید(کاربر، "phone")
سرچاپ مقدار.تهی است(ت)، مقدار.منطقی است(ت)، مقدار.صحیح است(مقدار.مقدار صحیح(۱))، مقدار.اعشاری است(مقدار.مقدار اعشاری(۱.۰))، مقدار.عدد است(مقدار.مقدار صحیح(۱))
سرچاپ مقدار.رشته است(مقدار.مقدار رشته(""))، مقدار.شیء است(کاربر)، ت.kind == مقدار.نوع تهی، مقدار.نوع شیء
ناپایا ک := مقدار.رونوشت مقدار(کاربر)
سرچاپ مقدار.یکسان است(ک، کاربر)
حذف شد := مقدار.حذف کلید(ک، "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؛ شماره باید کمتر از طول آرایه باشد.نمونهی این مورد همراه با موارد بالاتر آمده است: 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: رشته): مقدارنمونهی این مورد همراه با موارد بالاتر آمده است: 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