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

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

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

کاتلین یک مجموعه عملگرها دارد که برای اجرای عملیات حسابی انتسابی، مقایسه‌ای و غیره استفاده می‌شوند. عملگرها نمادهای خاصی هستند که روی عملوند‌های یک عملیات یعنی متغیرها و مقادیر اجرا می‌‌شوند. برای نمونه عملگر + برای جمع زدن اعداد مورد استفاده قرار می‌گیرد. در این بخش به بررسی عملگرهای کاتلین می‌پردازیم.

عملگرهای حسابی در کاتلین

فهرست عملگرهای حسابی و کارکرد آن‌ها در کاتلین به شرح زیر است:

عملگر توضیح
+ جمع (برای الحاق دو رشته نیز استفاده می‌شود.)
عملگر تفریق
* عملگر ضرب
/ عملگر تقسیم
% عملگر باقیمانده

مثال عملگرهای حسابی در کاتلین

fun main(args: Array<String>) {
    val number1 = 12.5    val number2 = 3.5    var result: Double     result = number1 + number2    println("number1 + number2 = $result")
    result = number1 - number2    println("number1 - number2 = $result")
    result = number1 * number2    println("number1 * number2 = $result")
    result = number1 / number2    println("number1 / number2 = $result")
    result = number1 % number2    println("number1 % number2 = $result")
}


خروجی برنامه فوق چنین است:

number1 + number2 = 16.0 number1 - number2 = 9.0 number1 * number2 = 43.75 number1 / number2 = 3.5714285714285716 number1% number2 = 2.0

عملگر + برای الحاق مقادیر string استفاده می‌شود.

مثالی از الحاق رشته‌ها

fun main(args: Array<String>) {
    val start = "Talk is cheap. "    val middle = "Show me the code. "    val end = "- Linus Torvalds"
    val result = start + middle + end    println(result)
}

خروجی برنامه فوق به صورت زیر است:

Talk is cheap. Show me the code. - Linus Torvalds

طرز کار عملگرهای حسابی چگونه است؟

فرض کنید از عملگر + برای جمع زدن دو عدد a و b استفاده می‌کنیم. در پشت صحنه a + b تابع عضو a.plus(b) را فراخوانی می‌کند. عملگر plus طوری overload شده که با مقادیر String و دیگر انواع داده مقدماتی (به جز Char و Boolean) نیز کار کند.

// + operator for basic types operator fun plus(other: Byte): Int operator fun plus(other: Short): Int operator fun plus(other: Int): Int operator fun plus(other: Long): Long operator fun plus(other: Float): Float operator fun plus(other: Double): Double 
// for string concatenation operator fun String?.plus(other: Any?): String


همچنین می‌توانید از عملگر + و از طریق overload کردن تابع ()plus برای کار با انواع تعریف شده از سوی کاربر (مانند شیءها) استفاده کنید. در جدول زیر عملگرهای حسابی و تابع‌های متناظر آن‌ها ارائه شده است:
عبارت نام تابع ترجمه
a + b plus a.plus(b)
a – b minus a.minus(b)
a * b times a.times(b)
a / b div a.div(b)
a % b mod a.mod(b)

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

عملگرهای انتساب برای نسبت دادن یک مقدار به متغیر استفاده می‌شوند. ما قبلاً نمونه‌ای از کاربرد عملگر انتساب ساده (=) را دیده‌ایم.

val age = 5

در مقال فوق مقدار 5 با استفاده از عملگر = به متغیر age انتساب می‌یابد. در ادامه فهرستی از همه عملگرهای انتساب و تابع‌های متناظر آن‌ها را می‌بینید:

عبارت معادل ترجمه
a +=b a = a + b a.plusAssign(b)
a -= b a = a – b a.minusAssign(b)
a *= b a = a * b a.timesAssign(b)
a /= b a = a / b a.divAssign(b)
a %= b a = a % b a.modAssign(b)

مثالی از عملگر‌های انتساب

fun main(args: Array<String>) {    var number = 12
    number *= 5   // number = number*5    println("number  = $number")
}

با اجرای کد فوق خروجی زیر به دست می‌آید:
number = 60

عملگرهای پیشوند یکانی (Unary prefix) و افزایش/کاهش در کاتلین

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

عملگر معنا عبارت ترجمه
+ جمع یکانی +a ()a.unaryPlus
منهای یکانی ( معکوس‌سازی علامت) -a ()a.unaryMinus
! نه (معکوس مقدار) !a ()a.not
++ افزایش به مقدار 1 واحد ++a ()a.inc
کاهش به مقدار 1 واحد –a ()a.dec

مثالی از عملگرهای یکانی

fun main(args: Array<String>) {    val a = 1    val b = true    var c = 1
    var result: Int    var booleanResult: Boolean     result = -a    println("-a = $result")
    booleanResult = !b    println("!b = $booleanResult")
    --c    println("--c = $c")
}


کد فوق خروجی زیر را تولید می‌کند:
-a = -1 !b = false --c = 0


عملگرهای مقایسه و برابری

در ادامه جدولی از عملگرهای برابری و مقایسه‌ای را به همراه معنا و تابع‌های متناظرشان می‌بینید:

عملگر معنا عبارت ترجمه
> بزرگ‌تر از a > b a.compareTo(b) > 0
< کوچک‌تر از a < b a.compareTo(b) < 0
>= بزرگ‌تر مساوی a >= b a.compareTo(b) >= 0
<= کوچک‌تر مساوی a < = b a.compareTo(b) <= 0
== برابر است با a == b a?.equals(b) ?: (b === null)
!= برابر نیست با a != b !(a?.equals(b) ?: (b === null))

عملگرهای مقایسه و برابری در گردش کنترل از قبیل عبارت if، عبارت when و حلقه‌ها مورد استفاده قرار می‌گیرند.

مثالی از عملگرهای مقایسه‌ای و برابری

fun main(args: Array<String>) {
    val a = -12    val b = 12
    // use of greater than operator    val max = if (a > b) {        println("a is larger than b.")        a    } else {        println("b is larger than a.")        b    }
    println("max = $max")
}



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

b is larger than a. max = 12
عملگرهای منطقی

دو عملگر منطقی به صورت || و && در کاتلین وجود دارند. در ادامه جدولی از عملگرهای منطقی، معنا و تابع‌های متناظر آن‌ها را مشاهده می‌کنید:


عملگر توصیف عبارت تابع متناظر
|| در صورت true بودن هر یک از اجزا، true خواهد بود. (a>b)||(a<c) (a>b)or(a<c
&& در صورت true بودن همه عبارت‌ها مقدار true خواهد بود. (a>b)&&(a<c) (a>b)and(a<c)

توجه کنید که or و and تابع‌هایی هستند که از نمادگذاری میانوندی (infix notation) پشتیبانی می‌کنند. عملگرهای منطقی در گردش کنترل در عبارت‌هایی مانند if و when و همچنین حلقه‌ها کاربرد دارند.

مثالی از عملگرهای منطقی

fun main(args: Array<String>) {
    val a = 10    val b = 9    val c = -1    val result: Boolean     // result is true is a is largest    result = (a>b) && (a>c) // result = (a>b) and (a>c)    println(result)
}



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

true


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

منوی سریع