تعریف متغیر در کاتلین – آموزش برنامه نویسی kotlin ، آموزش کاتلین ، تعریف متغیر در kotlin نقطه عطف برنامه نویسی کاتلین است که از قید و بند تعریف نوع در جاوا خارج شدیم و تنها کافیست بگوییم که ما یک متغیر با این نام نیاز داریم همیییین 😀 !
کاتلین برای تعرف متغیر دو کلمه کلیدی به ما میدهد: var و val
با این دو کلمه کلیدی یا کلید واژه ما هر نوع متغیری که بخواهیم تعریف میکنیم و دیگر نیازی به مشخص کردن نوع در ابتدای تعریف متغیر نداریم ، بدین صورت که :
int a = 12
تبدیل به
var a=12
خواهد شد
توجه:
کاتلین زبان بدون سیمی کالن (;) است.
پس در نهایت زبان برنامه نویسی کاتلین این امکان را به ما می دهد که ابتدای کار تنها متغیر را با یکی از کلمات کلیدی تعریف کنیم و درادامه هر مقداری که برای اولین بار به آن اختصاص میدهیم متغیر نوع همان مقدار را به خود میگیرد و دیگر نمی توانیم یک نوع داده دیگر را به آن اختصاص دهیم.
خب حالا ببینیم تفاوت این دو کلمه کلیدی در چیست !
کلمه کلیدی var برای متغیر هایی ست که مقادیرشان هر لحظه ممکن است تغییر کند.درواقع var در جاوا یک متغیر عادی است !
کلمه کلیدی val یا Read-only variableas نیز برای متغیر هایی ست که تنها یکبار مقدار میگیرند و دیگر هیچگاه ویرایش نمیشوند. درواقع val درجاوا متغیرهای final است.
درواقع زمان تعریف متغیر نیازی به تعریف نوع نیست اما میتوانیم همان ابتدا هم نوع را به متغیر بدهیم که درادامه داده ای جز آن نوع به متغیر داده نشود که دادن نوع هم بدین صورت خواهد بود
val characters: CharSequence = "abc"
یا
var characters: CharSequence = "abc"
محدوده استفاده از متغیرها در زبان برنامه نویسی کاتلین شبیه به زبان جاوا است بدین معنی که متغیری که در بدنه کلاس تعریف شد در اختیار تمامی متد های کلاس است و یا متغیری که در یک متد تعریف شد تنها در اختیار همان متد خواهد بود.
و اما نام گذاری متغیر ها هم بصورت lowerCamelCase خواهد بود و نه snake_case
همچنین قوانین روتین نام گذاری برای مثال استفاده نکردن از کلمات رزرو شده ، شروع نکردن با عدد و … که هر برنامه نویسی به آن مسلط است 🙂
اگر میخواهید متغیری را بصورت public static final در جاوا تعریف کنید میتوانید از ثابت ها در کاتلین بصورت زیر استفاده کنید
companion object {
const val a=2;
}
درواقع companion object همان مفهوم static در جاواست بدین صورت که هر متد یا متغیری که بخواهیم بصورت static در یک کلاس تعریف کنیم تنها کافی ست آن را در یک بلاک companion بصورت زیر بگذاریم
class Car(val horsepowers: Int) {
companion object Factory {
val cars = mutableListOf<Car>()
fun makeCar(horsepowers: Int): Car {
val car = Car(horsepowers)
cars.add(car)
return car
}
}
}
و میتونیم بصورت زیر از بلاک companion استفاده کنیم
val car = Car.makeCar(150)
println(Car.Factory.cars.size)
در پست بعدی با کلاس ها و شی ها در کاتلین بیشتر آشنا خواهیم شد.