- vừa được xem lúc

Thích học lập trình: Đa vũ trụ giẫn dỗi - Tôi là tôi mà không phải là tôi

0 0 19

Người đăng: Lâm Kim Phú

Theo Viblo Asia

Anh là ai? Tôi là tôi. Tôi giống anh, tôi làm những thứ gần giống anh làm nhưng tôi không phải là anh.

Tôi là tôi mà không phải là tôi

Khi mộng du trong đa vũ trụ, đi từ vụ trũ này sang vũ trụ khác, người du hành sẽ gặp được bản thể của chính mình tại vũ trụ đó. Nhưng hơi khác lạ, có thể phiên bản này đẹp trai hơn, giàu hơn, mạnh hơn hoặc yếu hơn, cơ mà cuối cùng cũng giống nhau là không có được tình yêu cả đời mình như ai đó. Như vậy, những người này tuy khác vũ trụ, nhưng lại giống nhau nhưng lại khác một tẹo về cuộc đời, vậy họ có giống nhau không? Về bản chất là có và về thực tế là không.

Khác vũ trụ, cùng tên gọi

Ở earth 73 nào đó, kênh Thích Học rất là thành công, mọi người đều biết đến Thích Học. Nhờ có Thích Học mà mọi người cảm thấy thích học hơn, học hỏi được nhiều hơn, biết nhiều hơn, cuộc sống tốt hơn, vui vẻ hơn. Ở Earth 74 nào đó, Thích Học không thành công như vậy, nhờ Thích Học mà mọi người không thích học. Ai cũng chán ghét kênh này, họ đã từng tìm cách để tiêu diệt kênh này nhưng không thành công. Người du hành vũ trụ từ earth 73 sang earth 74, họ nói về kênh Thích Học rất thành công thì người ở Earth 74 kiểu nói gì vậy, ở đây ai cũng ghét nó. Và ngược lại, khi người earth 74 qua bên earth 73 và nói rằng Thích Học rất fail thì người ở đây kiểu thôi nào, đừng GATO như vậy, họ rất thành công mà. Do đó, khi nói Thích Học, để câu nói đúng thì phải kèm theo, Thích Học earth 73, Thích Học earth 74. Như vụ đèn đỏ chẳng hạn, ở earth 1 thì dừng, còn ở earth 2 thì đi 😄. Vậy đèn đỏ nên đi hay nên dừng? Đèn đỏ earth 1 thì nên dừng và đèn đỏ earth 2 thì nên đi còn đèn đỏ nên đi hay nên dừng thì no idea.

Overloading

Trong lập trình, chúng ta có những khái niệm tương tự. Trong một class, chúng ta có thể có nhiều Constructor, về bản chất, chúng đều là constructor, nhưng constructor này không phải là constructor kia và constructor kia không giống với constructor nọ. Nó giống nhau nhưng lại khác nhau. Về bản chất thì giống nhau về thực tế thì khác nhau.

public ThichHoc() {} public ThichHoc(int n) {} public ThichHoc(float n) {} public ThichHoc(string n) {}

Để sử dụng, chúng ta phải gọi tên kèm với vũ trụ đó bằng cách truyền tham trị.

new ThichHoc() // earth 1 new ThichHoc(2) // earth 2 new ThichHoc(3.234) // earth 3 new ThichHoc("Thich Hoc") // earth 4

Tương tự cho hàm, tên gọi y chang, nhưng tham số sẽ khác nhau về kiểu chẳng hạn. Khi gọi tên hàm, giả sử hàm calculate, chúng ta không thể đơn giản gọi là hàm calculate, mà phải chỉ rõ ra calculate earth 1 hay earth 2 bằng cách thêm tham số vào:

public int calculate(int n) {} public int calculate(float n) {} public int calculate(string n) {}

Vậy calculate nên nhận giá trị là int, float hay string. Calculate ở earth 1 nhận giá trị là int, calculate ở earth 2 nhận giá trị là float và calculate ở earth 3 nhận giá trị là string. Giống nhau nhưng lại khác nhau nên khi dùng phải chỉ rõ ra là dùng calculate của earth nào bằng cách truyền tham trị vào hợp với tham số.

calculate(2) // calculate earth 1 calculate(2.3) // calculate earth 2 calculate('Hello World') // calculate earth 3

Vậy thì trong đa vũ trụ, tôi là tôi mà không phải là tôi. Muốn biết chính xác tôi là ai thì phải chỉ rõ ra là ở vũ trụ nào. Như constructor ThichHoc hay hàm calculate, chỉ rõ ra ở vũ trụ nào thì mới có thể dùng chính xác được.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Thích học VIM: Di chuyển con trỏ

Giới thiệu. Ở bài trước, chúng ta đã cùng tìm hiểu về cách mở VIM, thêm text vào file, lưu lại và thoát VIM.

0 0 28

- vừa được xem lúc

Thích học VIM: Thêm, xóa, sửa

Giới thiệu. Trong bài này, chúng ta sẽ tiếp tục tìm hiểu về những phím giúp chúng ta có thể thêm, xóa và sửa trong VIM nhé.

0 0 28

- vừa được xem lúc

Thích học bí thuật Javascript: XMLHttpRequest

Giới thiệu. Từ ngàn xưa, để thực hiện HTTP requests trong Javascript, người ta đã thực hiện một phương thức cổ đại được truyền lại từ ai đó.

0 0 26

- vừa được xem lúc

Thích học Linux: Giới thiệu

Giới thiệu. Linux là một họ hệ điều hành giống với mã nguồn mở dựa trên nhân Linux.

0 0 25

- vừa được xem lúc

Thích học Arch: Btw, I use Arch

Người đang ông mệt mỏi ngồi bệt xuống thềm, sau bao năm code, cuối cùng ông cũng nhận ra, muốn code không bug thì đừng có code. Một ngày t6 cuối tuần, sau một tuần làm việc mệt mỏi thì hôm nay, mình q

0 0 22

- vừa được xem lúc

Thích học VIM: Sao chép, dán, visual mode, undo, redo và register

Lời mở đầu. Hôm nay, chúng ta sẽ học cách sao chép chữ, từ và dán những chữ, từ.

0 0 27