2 سال پیش / خواندن دقیقه

عملگر in در کاتلین با مثال کاربردی

عملگر in برای بررسی این که یک شیء به یک مجموعه تعلق دارد یا نه، استفاده می‌شود.

عملگر عبارت ترجمه
in a in b b.contains(a)
in! a !in b b.contains(a)!

مثالی از عملگر in

fun main(args: Array<String>) {
    val numbers = intArrayOf(1, 4, 42, -3)
    if (4 in numbers) {        println("numbers array contains 4.")    }
}


نتیجه اجرای کد فوق به صورت زیر است:

numbers array contains 4.

عملگر دسترسی اندیس

در این بخش برخی عبارت‌ها که در عملگر دسترسی اندیس استفاده می‌شوند، به همراه تابع متناظرشان در کاتلین معرفی شده‌اند.

عبارت ترجمه
a[i] a.get(i)
a[i, n] a.get(i, n)
a[i1, i2, …, in] a.get(i1, i2, …, in)
a[i] = b a.set(i, b)
a[i, n] = b a.set(i, n, b)
a[i1, i2, …, in] = b a.set(i1, i2, …, in, b)

مثالی از عملگر دسترسی اندیس

fun main(args: Array<String>) {
    val a  = intArrayOf(1, 2, 3, 4, - 1)    println(a[1])       a[1]= 12    println(a[1])
}


با اجرای کد فوق نتیجه زیر حاصل می‌شود:

2 
12

عملگر invoke

در این بخش برخی عبارت‌ها با استفاده از عملگر invoke و تابع‌های متناظر آن‌ها در کاتلین ارائه شده‌اند.

عبارت ترجمه
a() a.invoke()
a(i) a.invoke(i)
a(i1, i2, …, in) a.inkove(i1, i2, …, in)
a[i] = b a.set(i, b)
a[i, n] = b a.set(i, b)

در کاتلین پرانتزها به فراخوانی تابع عضو invoke ترجمه می‌شوند.

عملگرهای بیتی

برخلاف جاوا، در کاتلین هیچ عملگر بیتی و شیفت بیتی وجود ندارد. با این حال، برای اجرای این وظایف، تابع‌های مختلفی (با پشتیبانی از نمادگذاری میانوندی) مورد استفاده قرار می‌گیرند.

  • shl – شیفت چپ علامت‌دار
  • shr – شیفت راست علامت‌دار
  • ushr – شیفت راست بی‌علامت
  • and – و بیتی
  • or – یای بیتی
  • xor – xor بیتی
  • Inv – معکوس بیتی

همچنین در کاتلین هیچ عملگر سه‌تایی برخلاف جاوا وجود ندارد.


شاید از نوشته‌های زیر خوشتان بیاید
نظر خود را درباره این پست بنویسید ...

منوی سریع