THẢO LUẬN

Óc Hợi dạo này còn marketing ở cuối post luôn hả. Tiếp tục giữ lửa nhé (go)

0
thg 2 25, 2019 10:44 SA

bài viết hữu ích quá, cảm ơn tác giả.

0

@dat.hedspi cảm ơn bạn. Giờ thì mình hiểu hơn một chút rồi.

+1

việc sử dụng block trong rails thì phần lớn các bạn chỉ dùng để phục vụ cho loop, ngoài ra nếu dùng với ruby thì nó cũng có nhiều tác dụng nhỏ nhỏ khác ví dụ

def my_method
    yield("John", 2)
end

my_method { |name, age| puts "#{name} is #{age} years old" }

Đơn giản nhưng vẫn hữu ích đúng ko 😄

0

@dat.hedspi ok, cảm ơn bạn nhé.

+1

việc passing object trong rails nó là passing referrence value chứ ko phải chỉ là truyền tham chiếu đâu, bạn có thể tham khảo thêm ở đây nhé https://launchschool.com/blog/object-passing-in-ruby

0

Bạn hiểu đúng, mình ko phản bác đâu 😄, đúng là nó chính là nền tảng để bạn sử dụng cho các method loop. Nhưng định nghĩa về block thì ko phải là định nghĩa nó là nền tảng của phần nào mà định nghĩa chính bản thân thằng block "đơn giản chỉ là một khối lệnh thôi", ý mính là vậy 😄

+1

@dat.hedspi iterator method là các instance method được sử dụng cho vòng lặp. Chuẩn bạn ạ.

0

Trong sách Ruby mình đính kèm ở cuối bài, nó có một câu như thế này:

The use of blocks is fundamental to the use of iterators

nên mình nghĩ là mình hiểu đúng.

+1

theo mình hiểu thì các iterator method method của bạn chính là các instance method đúng ko? và nó được sử dụng cho vòng loop (kiểu áp dụng iterator pattern - phần này là áp dụng nhé) đúng ko? Với mình vẫn đang suy nghĩ định nghĩa của block nó đơn giản chỉ là khối lệnh thôi chứ đâu phải là nền tảng của riêng các method dùng để loop nhỉ?

Bạn cho ý kiến nhé 😄

0

Mình nghĩ là phần cuối bài là truyền tham chiếu bạn ạ, bởi vì các số ở trong Ruby cũng là object, chứ không đơn giản chỉ là giá trị. 😃 . Còn Block thì đúng nó là một khối lệnh không được định danh thành object, nhưng mình thấy ngoài việc trở thành nền tảng của một vòng lặp, nó chẳng có tác dụng gì khác. Cũng có thể là kiến thức của mình chưa sâu.

0

Câu trả lời của mình có thể chưa hoàn toàn chính xác. Mong bạn đóng góp thêm.

+1

Từ "iterators" nghĩa là vòng lặp và iterator method trong Ruby là các method liên quan đến vòng lặp. Các iterator method thường được sử dụng bởi các loại object bao gồm nhiều phần tử - hay còn gọi là collection. Trong Ruby, mình mới chỉ biết 3 loại collection, đó là array , hashrange . Các iterator method được tích hợp sẵn trong các class của các collection trong Ruby, có thể kể đến là : each, select, map , collect , inject, ...... . Ngoài ra , mình có thể tự tạo một iterator method trong một class bất kỳ, nếu sử dụng từ khóa yield . Ví dụ , mình có thể mô phỏng lại một method tương tự method each bằng đoạn code dưới đây:

class P
def initialize a,b
 @a = a
 @b = b
end 
def each
  yield @a 
  yield @b
end
end
0

Trường hợp phải join hai hay nhiều bảng CSDL thì làm sao ạ?

0

Bạn cho mình hỏi thêm iterators method trong ruby là loại method nào vậy?

Với việc truyền tham số vào block ở phần cuối của bài viết theo mình hiểu là truyền giá trị có đúng không ạ? hay đó là truyền tham chiếu của biến n?

Cảm ơn bạn 😄

Với cả mình nghĩ định nghĩa của block đơn giản nó là chỉ là một khối lệnh không được định danh thành object thôi chứ không phải là nền tảng của các vòng loop đâu đúng ko nhỉ? bạn cho ý kiến nhé

0

Good reading 😊

+1
thg 2 25, 2019 8:49 SA

bạn có thể để bất cứ nơi đâu, dùng đúng name space của nó là dc mà. Ví dụ ở trên thay vì return time() thì return new App\Computer() hoặc new App\Models\Computer() tùy để ở đâu thì gọi như thế

0
thg 2 25, 2019 7:49 SA

B trả về browser mà để nguyên code react thì b phải nhúng react vào <head>. Nếu không thì trên server b phải dùng tool đẻ gen toàn bộ app react ra dạng string html rồi trả về cho browser

0

Do you also want to learn Laravel in the Tech School?

Visit our Tech School Website (Although it's only in Japanese for now).

https://framgia.com/study-abroad/

0
thg 2 25, 2019 4:56 SA

@hpvanlong à anh ơi, anh cho e hỏi thêm câu này nữa với ạ: giả sử ban đầu e khởi tạo state thế này:

state = {
    name : "",
    age: "",
    email: "",
    gender : "",
    ....vv
}

Sau đó em lấy tất cả các giá trị trong state ra và gán vào thuộc tính value cho mỗi trường tương ứng.

Khi người dùng thay đổi một một trường bất kỳ => gọi đến sự kiện onChange () => gọi hàm set lại State để cập nhật giá trị mới mà người dùng nhập vào trường đó. Nhưng như vậy khi state được set lại thì code render() lại toàn bộ cho dù các trường kia người dùng không thực hiện thay đổi gì cả. Đây là hệ quả tất yếu, bắt buộc phải vậy hả anh , hay mình có cách khác để khắc phục nó ạ

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí