عملگرهای منطقی
دو عملگر منطقی به طور || و && در کاتلین وجود داراهستند. به دنبال جدولی از عملگرهای منطقی، مضمون و تابعهای طراحی اپلیکیشن در مشهد متناظر آن ها را مشاهده می کنید:
عملگر تعریف عبارت تابع متناظر
|| در شکل true بودن هر مورد از اجزا، true خواهد بود. (a>b)||(ab)or(a && در شکل true بودن تمامی عبارتها مقدار true خواهد بود. (a>b)&&(ab)and(a
دقت فرمایید که or و and تابعهایی می باشند که از نمادگذاری میانوندی (infix notation) حمایت مینمایند. عملگرهای منطقی در گردش در دست گرفتن در عبارتهایی مانند if و when و همینطور رینگها کاربرد داراهستند.
مثالی از عملگرهای منطقی
1fun main(args: Array) {
2
3 val a = 10
4 val b = 9
5 val c = -1
6 val result: Boolean
7
8 // result is true is a is largest
9 result = (a>b) && (a>c) // result = (a>b) and (a>c)
10 println(result)
11}
خروجی اجرای کد فوق به طور ذیل میباشد:
true
عملگر in
عملگر in برای رسیدگی این که یک شیء به یک دسته وابستگی دارااست یا این که خیر، به کار گیری میگردد.
عملگر عبارت ترجمه
in a in b b.contains(a)
in! a !in b b.contains(a)!
مثالی از عملگر in
1fun main(args: Array) {
2
3 val numbers = intArrayOf(1, 4, 42, -3)
4
5 if (4 in numbers) {
6 println("numbers array contains 4.")
7 }
8}
فیض اجرای کد فوق به طور پایین میباشد:
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)
مثالی از عملگر دسترسی اندیس
1fun main(args: Array) {
2
3 val a = intArrayOf(1, 2, 3, 4, - 1)
4 println(a[1])
5 a[1]= 12
6 println(a[1])
7}
با اجرای کد فوق سود پایین نتایج می شود:
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 - معکوس بیتی
همینطور در کاتلین هیچ عملگر سهتایی برخلاف جاوا نیست.
تبدیل نوع در کاتلین
دراین نصیب از نوشته ی علمی یادگرفتن کاتلین به رسیدگی تبدیل نوع و نمونههای آن می پردازیم. در کاتلین، یک مقدار عددی از یک نوع، حتی اگر که نوع دیگر والاخیس باشد، به طور اتوماتیک به نوع دیگری تبدیل نمیشود. از این حیث کاتلین نحوه فعالیت متفاوتی نسبت به روش مدیر تبدیل عددی در جاوا دارااست. مثلا در جاوا به طور ذیل کار میکنیم:
1int number1 = 55;
2long number2 = number1;// Valid code
در نمونه فوق، مقدار number1 از نوع int به طور اتومات به نوع long تبدیل میگردد و به متغیر number2 انتساب مییابد.
از سوی دیگر در کاتلین به طور ذیل فعالیت می کنیم:
1val number1: Int = 55
2val number2: Long = number1// Error: type mismatch.
حتی با این که اندازه Long والاخیس از Int میباشد، کاتلین به طور اتوماتیک Int را به Long تبدیل نمینماید. بلکه می بایست از به طور مصرح از مشی ()toLong استعمال کنیم تا نوع متغیر را به Long تبدیل کنیم. کاتلین از این شغل برای پرهیز از شگفتزده کردن مخاطب امتناع مینماید.
1val number1: Int = 55
2val number2: Long = number1.toLong()
دراین نصیب فهرستی از تابعهای کاتلین را میبینید که برای تبدیل نوع استعمال می گردند:
toByte()
toShort()
toInt()
toLong()
toFloat()
toDouble()
toChar()
دقت فرمایید که تابعی برای تبدیل گونه های Boolean نیست.
تبدیل از نوع بلندمرتبهخیس به نوع خردخیس
تابعهای گزینه اشاره فوق را میقدرت در هر دو جهت یعنی تبدیل از نوع خرد به تبارک و برعکس، آیتم به کارگیری قرار اعطا کرد. با این هم اکنون تبدیل از نوعهای تبارکخیس به اشکال خردخیس ممکن میباشد سبب ساز تعدیل یک مقدار خواهد شد. به نمونه پایین دقت نمایید:
1fun main(args : Array) {
2 val number1: Int = 545344
3 val number2: Byte = number1.toByte()
4 println("number1 = $number1")
5 println("number2 = $number2")
6}
خروجی اجرای کد فوق به طور ذیل میباشد:
number1 = 545344
number2 = 64
عبارتها، پاراگرافها و بلوکهای کاتلین
درین نصیب از نوشتهعلمی یادگرفتن کاتلین راجع به عبارتها و جملههای کاتلین توضیح میدهیم و تفاوت فی مابین این دو را با هم و با بلوکهای کاتلین مقایسه میکنیم.
عبارتهای کاتلین
«عبارت» (Expression) دربرگیرنده متغیر، عملگر و هر چیزی میباشد که یک مقدار منفرد را تحلیل مینماید. به نمونه ذیل اعتنا فرمائید:
val score: Int
score = 90 + 25
در کد فوق، 90 + 25 یک عبارت میباشد که مقدار int رجوع میدهد. دقت فرمایید که در کاتلین if برخلاف جاوا یک عبارت میباشد. در جاوا if یک پاراگراف به حساب می آید.
1fun main(args: Array) {
2
3 val a = 12
4 val b = 13
5 val max: Int
6
7 max = if (a > b) a else b
8 println("$max")
9}
در نمونه فوق if (a > b) a else b یک عبارت میباشد. مقدار این عبارت به متغیر max انتساب می یابد.
عملگرهای منطقی
دو عملگر منطقی به طور || و && در کاتلین وجود داراهستند. به دنبال جدولی از عملگرهای منطقی، مضمون و تابعهای طراحی اپلیکیشن در مشهد متناظر آن ها را مشاهده می کنید:
عملگر تعریف عبارت تابع متناظر
|| در شکل true بودن هر مورد از اجزا، true خواهد بود. (a>b)||(ab)or(a && در شکل true بودن تمامی عبارتها مقدار true خواهد بود. (a>b)&&(ab)and(a
دقت فرمایید که or و and تابعهایی می باشند که از نمادگذاری میانوندی (infix notation) حمایت مینمایند. عملگرهای منطقی در گردش در دست گرفتن در عبارتهایی مانند if و when و همینطور رینگها کاربرد داراهستند.
مثالی از عملگرهای منطقی
1fun main(args: Array) {
2
3 val a = 10
4 val b = 9
5 val c = -1
6 val result: Boolean
7
8 // result is true is a is largest
9 result = (a>b) && (a>c) // result = (a>b) and (a>c)
10 println(result)
11}
خروجی اجرای کد فوق به طور ذیل میباشد:
true
عملگر in
عملگر in برای رسیدگی این که یک شیء به یک دسته وابستگی دارااست یا این که خیر، به کار گیری میگردد.
عملگر عبارت ترجمه
in a in b b.contains(a)
in! a !in b b.contains(a)!
مثالی از عملگر in
1fun main(args: Array) {
2
3 val numbers = intArrayOf(1, 4, 42, -3)
4
5 if (4 in numbers) {
6 println("numbers array contains 4.")
7 }
8}
فیض اجرای کد فوق به طور پایین میباشد:
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)
مثالی از عملگر دسترسی اندیس
1fun main(args: Array) {
2
3 val a = intArrayOf(1, 2, 3, 4, - 1)
4 println(a[1])
5 a[1]= 12
6 println(a[1])
7}
با اجرای کد فوق سود پایین نتایج می شود:
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 - معکوس بیتی
همینطور در کاتلین هیچ عملگر سهتایی برخلاف جاوا نیست.
تبدیل نوع در کاتلین
دراین نصیب از نوشته ی علمی یادگرفتن کاتلین به رسیدگی تبدیل نوع و نمونههای آن می پردازیم. در کاتلین، یک مقدار عددی از یک نوع، حتی اگر که نوع دیگر والاخیس باشد، به طور اتوماتیک به نوع دیگری تبدیل نمیشود. از این حیث کاتلین نحوه فعالیت متفاوتی نسبت به روش مدیر تبدیل عددی در جاوا دارااست. مثلا در جاوا به طور ذیل کار میکنیم:
1int number1 = 55;
2long number2 = number1;// Valid code
در نمونه فوق، مقدار number1 از نوع int به طور اتومات به نوع long تبدیل میگردد و به متغیر number2 انتساب مییابد.
از سوی دیگر در کاتلین به طور ذیل فعالیت می کنیم:
1val number1: Int = 55
2val number2: Long = number1// Error: type mismatch.
حتی با این که اندازه Long والاخیس از Int میباشد، کاتلین به طور اتوماتیک Int را به Long تبدیل نمینماید. بلکه می بایست از به طور مصرح از مشی ()toLong استعمال کنیم تا نوع متغیر را به Long تبدیل کنیم. کاتلین از این شغل برای پرهیز از شگفتزده کردن مخاطب امتناع مینماید.
1val number1: Int = 55
2val number2: Long = number1.toLong()
دراین نصیب فهرستی از تابعهای کاتلین را میبینید که برای تبدیل نوع استعمال می گردند:
toByte()
toShort()
toInt()
toLong()
toFloat()
toDouble()
toChar()
دقت فرمایید که تابعی برای تبدیل گونه های Boolean نیست.
تبدیل از نوع بلندمرتبهخیس به نوع خردخیس
تابعهای گزینه اشاره فوق را میقدرت در هر دو جهت یعنی تبدیل از نوع خرد به تبارک و برعکس، آیتم به کارگیری قرار اعطا کرد. با این هم اکنون تبدیل از نوعهای تبارکخیس به اشکال خردخیس ممکن میباشد سبب ساز تعدیل یک مقدار خواهد شد. به نمونه پایین دقت نمایید:
1fun main(args : Array) {
2 val number1: Int = 545344
3 val number2: Byte = number1.toByte()
4 println("number1 = $number1")
5 println("number2 = $number2")
6}
خروجی اجرای کد فوق به طور ذیل میباشد:
number1 = 545344
number2 = 64
عبارتها، پاراگرافها و بلوکهای کاتلین
درین نصیب از نوشتهعلمی یادگرفتن کاتلین راجع به عبارتها و جملههای کاتلین توضیح میدهیم و تفاوت فی مابین این دو را با هم و با بلوکهای کاتلین مقایسه میکنیم.
عبارتهای کاتلین
«عبارت» (Expression) دربرگیرنده متغیر، عملگر و هر چیزی میباشد که یک مقدار منفرد را تحلیل مینماید. به نمونه ذیل اعتنا فرمائید:
val score: Int
score = 90 + 25
در کد فوق، 90 + 25 یک عبارت میباشد که مقدار int رجوع میدهد. دقت فرمایید که در کاتلین if برخلاف جاوا یک عبارت میباشد. در جاوا if یک پاراگراف به حساب می آید.
1fun main(args: Array) {
2
3 val a = 12
4 val b = 13
5 val max: Int
6
7 max = if (a > b) a else b
8 println("$max")
9}
در نمونه فوق if (a > b) a else b یک عبارت میباشد. مقدار این عبارت به متغیر max انتساب می یابد.

معایب سبک ایده پردازی و فروش آن و درآمد از اندروید