کاتلین یک زبان کاملاً متناسب است که ممکن است موانع اولیه را برای افرادی که از پایتون تفسیر شده و تایپ شده استفاده می کنند فراهم کند. این مقاله با هدف توضیح بخش عمده ای از نحوه و مفاهیم کاتلین نوشته شده است.
کاتلین را می توان برای چندین سیستم عامل مختلف کامپایل کرد. در این مقاله فرض می کنیم که پلتفرم هدف دستگاه مجازی جاوا است (android)، که کد شما به bytecode جاوا وارد می شود و بنابراین با اکوسیستم بزرگ کتابخانه های جاوا قابل تعامل خواهد بود.
متغیرها در کاتلین
اعداد کاتلین مجموعه ای از type های داخلی را ارائه می دهد که اعداد را نشان می دهد.برای اعداد صحیح چهار نوع وجود دارد که اندازه های مختلف دارند و از این رو range value هستند.
Type | Size (bits) | Min value | Max value |
---|---|---|---|
Byte | 8 | -128 | 127 |
Short | 16 | -32768 | 32767 |
Int | 32 | -2,147,483,648 (-231) | 2,147,483,647 (231 - 1) |
Long | 64 | -9,223,372,036,854,775,808 (-263) | 9,223,372,036,854,775,807 (263 - 1) |
با Int تقریبا پرکاربرد تر است شروع می کنیم. برای تعریف متغیر در زبان کاتلین از کلمه کلیدی var یا val قبل از اسم متغیر استفاده میکنیم در ادامه تفاوت هایی که این دو با هم دارند را توضیح میدهیم. اگر از val استفاده کنیم پس از مقدار دهی دیگر نمیتوان آن را مقدار دهی کرد و فقط میتوانیم مقدارش را بخوانیم اما var پس از مقدار دهی میتوانیم مقدارش را تغییر دهیم.
var m=10
اینجا ما یک متغیر از نوع int تعریف کردیم البته ما جایی ننوشتیم int براساس مقداری که بهش دادیم int ذخیره کرد.همین متغیر را میتوان به شکل دیگری تعریف کرد.
var a:Int=20
ما مشخص کردیم که نوعش int هست.این روش زمانی به کار میرود که ما میخواهیم این متغیر را در خط های بعدی مقدار دهی کنیم.
var s:Int
s=30
همچنین میتوانیم مقدار پیش فرض nullقرار بدهیم برای متغیر.
var r:Int?=null
اگر متغیر بالا را با val بنویسیم خطای cannot reassigned میگیرد از کد ما
val b:Int?=null
b=20
متغیر long درکاتلین
Long همان int است فقط برای اعداد بزرگتر به کار میرود و حافظه بیشتر نسبت به int اشغال میکند
var a:Long=20
متغیر String در کاتلین
در این نوع متغیر ما محدودیتی نداریم که چه مقداری به آن بدهیم.هم میتونیم عدد بدیم هم حروف اما عددی که به Stringمی دهیم قابلیت این را ندارد که عملیات ریاضی روی آن انجام شود.
var name = "maysam"
var lastname: String = "babaei"
var phone: String? = ""
phone = "123456789"
var number = "2000000000"
متغیر Double در کاتلین
این نوع متغیر برای اعداد اعشاری استفاده میشود بجای اعشار از . استفاده میشود.
var a=12.5
var b:Double=12.5
var c:Double?=null
c=20.0
متغیر Boolean در کاتلین
این متغیر دو مقدار میگیرد true و false البته در زبان کاتلین مقدار null میتوانیم ذخیره کنیم
var a=false
var b:Boolean=true
var c:Boolean?=null
c=true;
تبدیل متغیر ها در کاتلین
بعضی مواقع و بسته به نیاز ما لازم هست که متغیر ها را تبدیل کنیم مثلا از double به int و long یا برعکس یا int به string
به کد زیر توجه کنید در این کد ما بدون تبدیل کردن مقدار یک متغیر از جنس byte رو در یه متغیر از جنسInt ذخیره کردیم اما به ما خطا داده
var b: Byte = 1
var i: Int = b
کد صحیح به صورت زیر میباشد:
var b: Byte = 1
var i: Int = b.toInt()
انواع تبدیل های مورد استفاده
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
toString():String
اپراتور های ریاضی در زبان کاتلین
کاتلین از مجموعه اپراتور های ریاضی برای انجام عملیات روی اعداد استفاده میکند (+ - * / %)
var x = 10
var y = 10
var s = x + y
var j = x / y
var z = x * y
var m=x-y
آرایه ها در زبان کاتلین
آرایه ها توسط کلاس array نمایش داده میشوند و دارای تابع هایی چون get و set است آرایه سایز و یکسری قایلیت دیگر را نیز به همراه خود دارد
class Array<T> private constructor() {
val size: Int
operator fun get(index: Int): T
operator fun set(index: Int, value: T): Unit
operator fun iterator(): Iterator<T>
// ...
}
برای ایجاد یک آرایه ، می توانیم از arrayOf استفاده کنیم و مقادیر را در آن وارد کنیم ،ما arrayOf(1,2,3) را اینجوری مینویسیم اما اون به شکل آرایه ذخیره میشود [1,2,3]همچنین ما میتوانیم از arrayOfNulls() استفاده کنیم برای ایجاد آرایه ای با اندازه مشخص و عناصر داخل آن تهی باشند.
ما اگر از سازنده Array استفاده کنیم میتوانیم اندازه آزایه وعملکردهایی را بگیریم که مقدار های اولیه هر عنصر از آرایه را با توجه به شماره index آن بازگردانیم
val asc = Array(5) { i -> (i * i).toString() }
آرایه ها در زبان کاتلین ثابت هستند. یعنی ما اجازه نداریم که Array<String>را به یک Array<Any> اختصاص دهیم دلیلش هم این است که در زمان اجرا ممکن است خطا بدهد. اما می توانیم از < Array <out Any استفاده کنیم.
زبان کاتلین یک سری کلاس های کمکی دارد برای ایجاد آرایه که از کلاسArray ارث بری نکرده اند اما خصوصیات تقریبا یکسانی دارند.
val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]
// مقدار این آرایه به شکل [0, 0, 0, 0, 0] است و سایز آن 5 است
val arr1 = IntArray(5)
//مقدار این آرایه به شکل [73, 73, 73, 73, 73] وسایز آن 5 است
val arr2 = IntArray(5) { 73 }
//این آرایه با روش لامبدا مقدار دهی میشود مقدار آن [0, 1, 2, 3, 4] است وسایزش 5 است
var arr3 = IntArray(5) { it * 1 }
ممنون که همراه ما بودید در مقاله های بعدی به آموزش دستورات شرطی و حلقه ها در کاتلین ارائه خواهیم داد نظرات و مشکلات خود را در قسمت نظرات با ما در میان بگذارید.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید