Java

Các điểm khác nhau về syntax giữa java và scala (p1)

Chào các bạn mình là một developer hiện đang làm về ngôn ngữ java, một câu nói thường thấy khi các bạn còn ngồi trên ghế nhà trường nghe bọn bạn đồn thổi nói là: "Lúc học thì thế thôi, học thì nhiều ngôn ngữ, nhưng lúc đi làm người ta (các công ty) chỉ cần biết sâu một ngôn ngữ thôi..bla bla". Mình cũng đã ám ảnh câu nói đó khá lâu cho đến khi đi làm thấy rằng nhiều người pro, họ không chỉ biết chuyên sau duy nhất 1 ngôn ngữ đâu mà còn biết thêm (code được, làm được) với 1 or 2 ngôn ngữ nữa. ? Cảm thấy mình hơi nhỏ bé nên cũng tự nhủ phải học thêm 1 ngôn ngữ nữa và mình đã chọn scala là ngôn ngữ thứ 2 ? Tìm đọc sách là suy nghĩ đầu tiên mình nghĩ tới, sau quá trình search google thì tìm được 1 quyển ưng ý về scala: http://ccfit.nsu.ru/~den/Scala/programming_in_scala_2nd.pdf Hiện tại mình chưa đọc được vài chương đầu thấy có nhiều điểm khác nhau cơ bản với java.

1.Contructor

Với scala contructor có thể khái báo ngay khi khai báo class

vd:
class ChecksumAccumulator (name: String, age: int){
    // class definition goes here
}

java thì cách khai báo:

vd:

class ChecksumAccumulator {
	private String name;
	private int age;

	/**
	 * @param name
	 * @param age
	 */
	public ChecksumAccumulator(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
}

các bạn thấy sự khác nhau về mặt cú pháp là rõ rệt khi muốn khởi tạo constructor, với scala cú pháp ngắn gọn hơn rất nhiều phải ko ạ ?

2.Kiểu trả về methods

Trong scala một function không trả về giá trị gi thì kiểu trả về là: unit còn trong java là: void

3.Cách run một application

java

public class Application {
	public static void main(String[] args) {
		System.out.println("run application");
	}
}

-------------------------------
scala

object Application {
    def main(args: Array[String]) {
        println("run application")
    }
}

4.Kiểu khai báo biến

Trong scala kiểu dữ liểu tất cả các biến đều khai báo bởi 2 từ khóa var và val var dùng cho khai báo biến bình thường

var i = 0;

val khi bạn định nghĩa một biến với kiểu là val thì biến đó giống như khai báo với từ khóa final trong java

val greetStrings = new Array[String](3)

5.Cách khai báo vòng lặp for

Trong các vong lặp như: while, do while, for thì điểm khác nhau nhiều nhất mình thấy là vòng lặp for, ở đây mình sẽ nêu ra 2 cách khai báo khác nhau của vòng lặp for

Cách1:

scala

for (arg <- args) {
    println(arg)
}

------------------
java

for (String str : args) {
    System.out.println(str);
}


Cách2:

scala

val greetStrings = new Array[String](3)
for (i <- 0 to 2) {

}

------------------------
java

for (int i = 0 ; i < 3 ; i++){

}

đó là nhưng cách khai báo tương đồng nhưng lại khác nhau trong hai ngôn ngữ như vậy

6.Các operation là method

chúng ta sét biểu thức toán đơn giản như sau: 1 + 2

Trong scala tất cả các toán tử đều là method của các đối tượng, trong trường hợp này operator+được hiểu là một method của object 1, khi 1 + 2 thì ta hiểu object Int 1 gọi method + rồi truyền param vào là 2như thế này: (1).+(2)

7.Kết luận

Phần một mình xin dừng tại đây để dành phần sau không hết cái chia sẻ. =)) Cảm ơn các bạn đã đọc bài chia sẻ của mình, hạn gặp lại nhé.

Registration Login
Sign in with social account
or
Lost your Password?
Registration Login
Sign in with social account
or
A password will be send on your post
Registration Login
Registration