var 是 JDK 10 中引入的一個構造,它用於創建未指定資料類型的變量,而是由編譯器來推斷變數 data 的類型。這就是所謂的型別推論。
var 不是Java 的關鍵字 或關鍵字,而是該語言的保留名稱,因為它是稍後引入的並且有可能被用作某些變數、類別、方法等的名稱。在引入之前的程式碼中。
類型推斷是一個過程,在這個過程中,編譯器可以根據分配給變數的值來確定變數的資料類型,而不是用其資料類型來聲明變量,這可以透過創建列表並省略菱形運算子中的資料類型來看到,如下所示:
// Omite el tipo de dato dentro del operador diamante List<Integer> list = new ArrayList<>(); // Usa el tipo de dato dentro del operador diamante List<Integer> list = new ArrayList<Integer>();
要使用 var 宣告變量,請執行以下操作:
var nombreDeLaVariable = valor;
var n = "John";
在這種情況下,編譯器推斷變數 n 是 String 類型,因為它被分配了 String 類型的值,並且省略了聲明資料類型的操作,即不必執行以下操作:
String n = "John";
如果變數的值改為 10,編譯器現在推斷變數 n 的型別為 int:
var n = 10;
類似地,如果變數的值改為 10.0,編譯器現在會推斷變數 n 的型別為 double:
var n = 10.0;
即使變數的值變更為 Random 實例,編譯器現在也會推斷變數 n 的類型為 Random:
// Omite el tipo de dato dentro del operador diamante List<Integer> list = new ArrayList<>(); // Usa el tipo de dato dentro del operador diamante List<Integer> list = new ArrayList<Integer>();
var nombreDeLaVariable = valor;
var n = "John";
String n = "John";
var n = 10;
var n = 10.0;
var n = new Random();
public class Person { private var name; // Error }
在其餘情況下,var 可以按正常方式使用,因為它必須在程式碼中本地使用,而不是在類別的屬性、方法的參數等層級使用。例如:
public class Person { private String name; }
public void sayHello(var name) { // Error System.out.println("Hello " + name); }
需要考慮的是,在某些情況下使用var 會降低程式碼的可讀性,因為Java 是一種為變數分配預先已知的資料類型的語言,並且在使用var 時可能會遺失該資訊,因此var可以用於可以清楚推斷資料類型並且不遺失程式碼可讀性的情況。
var y = null; // Error
重要的是不要將類型推論與 Java 作為強類型語言混淆。使用 var 並不使變數成為動態類型變量,而是編譯器在編譯時推斷變數的資料類型。所以你不能宣告一個int型別的變數,然後給它一個String類型的值。
var x; // Error x = 10;
以上是是一個Java的詳細內容。更多資訊請關注PHP中文網其他相關文章!