ההבדל בין var ב- Kotlin ו- Java 10

1. הקדמה

במדריך קצר זה, נעסוק בהבדלים בין var מילות מפתח ב- Java וב- Kotlin.

אנו מכסים את המזהה var ב- Java לעומק יותר במאמרנו Java 10 LocalVariable Type-Sference, ואנחנו מדברים על מילת המפתח var ב Kotlin במאמר שלנו Kotlin const, var ו- val מילות מפתח.

2. הצהרת סוג אופציונלית לעומת הצהרת סוג ללא

2.1. קוטלין

אם אנו מצהירים על משתנה משתנה ומאותחלים אותו במקביל, איננו צריכים לציין את הסוג:

var myVariable = 1

עם זאת, אנו יכולים לעשות זאת אם אנו בוחרים:

var myVariable: Int = 1

אם אנו רוצים להכריז על משתנה מבלי לאתחל אותו ישירות, עלינו לציין את סוגוונוכל להקצות ערך בהמשך:

var myVariable: Int myVariable = 1

2.2. ג'אווה

ב- Java אנו יכולים להשתמש רק var אם אנו מאתחלים את המשתנה במקום, ואיננו יכולים לספק מידע על סוג, גם אם ברצוננו:

var myVariable = 1;

הדברים הבאים אינם תקפים:

var myVariable; myVariable = 1;

ואנחנו מקבלים שגיאת זמן הידור:

לא ניתן להסיק את הסוג: 'var' במשתנה ללא אתחול

3. מילת מפתח לעומת מזהה

בקוטלין, var היא מילת מפתח, כלומר איננו יכולים להשתמש בה כשם של משתנה, פרמטר, שיטה או מחלקה. לעומת זאת, Java 10 מגדיר var כמזהה בעל משמעות מיוחדת.

כלומר ב- Java 10, עדיין נוכל להגדיר משתנה, פרמטר או שיטה עם השם var:

public void var () {// do something} שיטת בטל ציבורי (int var) {// do something} שיטת בטל ציבורי () {int var = 1; // עשה משהו }

זכור כי נכון ל- Java 10, לא ניתן להגדיר עוד מחלקה עם השם var:

מחלקה סטטית ציבורית var {}

הקוד שלעיל גורם לשגיאת זמן הידור:

שגיאה: (1, 1) java: 'var' אסור כאן החל משחרור 10, 'var' הוא שם סוג מוגבל ולא ניתן להשתמש בו לצורך הצהרות סוג

זה מבטיח תאימות לאחור עם גרסאות Java ישנות יותר.

4. מוטציה

משתנה שהוכרז עם var בקוטלין תמיד ניתן לשינוי, ואילו משתנה שהוכרז עם var ב- Java יכול להיות משתנה או סופי:

var mutableInt = 1; final var immutableInt = 1;

בקוטלין אין סופי מילת מפתח - משתנים סופיים מוכרזים עם val במקום:

val immutable Int = 1

5. שימוש גלובלי לעומת שימוש מקומי

5.1. קוטלין

בקוטלין נוכל להשתמש var להצהיר על משתנים כלליים ומקומיים, כמו גם על חברי הכיתה:

var myGlobalVar = 3 MyClass מחלקה {var myVar = 3 כיף ציבורי myFunction (): Int {var myVariable = 3 החזר myVariable}}

5.2. ג'אווה

בג'אווה נוכל להשתמש var רק כדי להכריז על משתנים מקומיים:

מחלקה ציבורית MyClass {// לא אפשרי עבור משתני חברים // private var myVar = 1; public int myFunction () {var myVariable = 3; החזר את myVariable; }}

6. מסקנה

במאמר זה בדקנו את ההבדל בין var בקוטלין ובג'אווה. למרות ששניהם נראים דומים מאוד, ישנם הבדלים מהותיים בין השניים.

ההבדל החשוב ביותר הוא זה var בקוטלין עוסק במוטביליות, ו var ב- Java עוסק בהיסק מסוג.


$config[zx-auto] not found$config[zx-overlay] not found