foo = "bar"
foo.instance_eval do
def hi
"you smell"
end
end
foo.hi # => "you smell"
bar = "foo"
bar.class.class_eval do
def hello
"i can smell you from here"
end
end
bar.hello # => "i can smell you from here"
2 cái ví dụ này khác nhau chỗ nào vậy ban? foo và bar cùng kiểu (đều được gán bằng 1 string). rồi thì xuống cuối gọi foo.hi tương tự bar.hello
thật là 2 ví dụ này nó chỉ ra được điểm khác nhau giữa instance_val và class_val hả bạn?
"vấn đề này là ta nhóm các class methods trong một module", là module methods chứ bạn? class method là chỉ những method của class mà, ở đây đang thao tác trên module.
@Katoji Bạn ý đang muốn tìm giải pháp khác tối ưu hơn để play video giống Facebook cho ứng dụng IOS, code với Swift4. Bạn có kinh nghiệm hay giải pháp gì share cho bạn ấy với.
bạn có thể dùng Pusher thay cho Redis cũng được, nhưng giống như mình mô tả ở đầu bài, Pusher bạn sẽ phải trả phí khi sau này, đồng thời khả năng customize sẽ bị hạn chế, và các tutorials sử dụng Pusher khá là nhiều trên facebook nhưng với Redis khi mình tìm thì hầu như không có hoặc ở các phiên bản đã cũ. Nên mình mới làm ra tut này.
Nếu e trong trường hợp này đầu tiên cứ format thì sẽ có regex tương ứng. Nhưng để nhớ được nó thì khó quá nên bỏ qua
Vì vậy em sẽ bắt đầu viết theo cách 2 vì nó gần với tu duy và logic hơn . và khi viết song chắc nhìn vòn while thì có thể dùng đệ quy được. còn cách 1 em chắc ko nghĩ ra nổi mất =)). Em Nói đùa thế cho vui thôi nhưng cách 1 nếu ai tinh ý ta có thể làm theo cách khác như thế này được không anh
String.prototype.splice=function(idx){returnthis.slice(0, idx)+"."+this.slice(idx,this.length);};
str ="0000000000000001";
len = Math.abs(str.length/3);if(Number.isInteger(len)){
len = len -1;}
len =parseInt(len);
hihi =-1;while(len >0){
hihi +=4;
str = str.splice(hihi);
len -=1;}
console.log(str);
Haha sory bạn nhé mình quên ko ghi mình đang demo trên sql server. 2 loại hình HQTCSDL này no có cú pháp khác nhau nên thành ra bên mysql bạn phải viết khác đi nhé.
inserted = NEW
deleted = OLD
nên bạn chỉ cần chạy ntn là ok nhé
DELIMITER $$
CREATETRIGGER trg_DatHang
AFTERinsertON tbl_DatHang FOR EACH ROWBEGINUPDATE tbl_KhoHang
SET SoLuongTon = SoLuongTon - NEW.SoLuongDat
where MaHang = New.MaHang;END;
$$
DELIMITER;
Và vì sao bạn có thể lấy được NEW.SoLuongDat thì nó là tương đương với câu select sau nhé bạn
SET SoLuongTon = SoLuongTon -(SELECT SoLuongDat
FROM inserted
WHERE MaHang = tbl_KhoHang.MaHang )FROM tbl_KhoHang
JOIN inserted ON tbl_KhoHang.MaHang = inserted.MaHang
Bạn có thể xem cú pháp bên mysql trên document hoặc là vào đây cũng đc nhé
THẢO LUẬN
2 cái ví dụ này khác nhau chỗ nào vậy ban? foo và bar cùng kiểu (đều được gán bằng 1 string). rồi thì xuống cuối gọi foo.hi tương tự bar.hello
thật là 2 ví dụ này nó chỉ ra được điểm khác nhau giữa instance_val và class_val hả bạn?
Theo mình hiểu thì jobs được chạy phía backend sao lại làm web (phần frontend phía trên) đơ được bạn nhỉ?
Trên frontend phải hiển thị được trạng thái đang chạy của jobs à?
"vấn đề này là ta nhóm các class methods trong một module", là module methods chứ bạn? class method là chỉ những method của class mà, ở đây đang thao tác trên module.
Thông thường chỉ cần play ở main thread là sẽ mượt mà thôi. Nhưng hiện tượng của bạn mình chưa nghĩ ra được nguyên nhân nên muốn xem code đó.
I have problem. where read file text with 100000 line text. my computer has crash. How to Solve a Problem . Thanks you.
mình chạy lại mà... Vẫn chỉ hiện ra chữ It works
@Katoji Bạn ý đang muốn tìm giải pháp khác tối ưu hơn để play video giống Facebook cho ứng dụng IOS, code với Swift4. Bạn có kinh nghiệm hay giải pháp gì share cho bạn ấy với.
He, bài viết chi tiết quá
class Foo; end
foo = Foo.new
def foo.bar puts 'instance method' end
foo.bar # "instance method"
Anh new object foo rồi dưới anh chỉ cần gọi foo.bar thôi, đúng ko anh ?
Ủa, vậy à ? Mình thấy vẫn sài ngon mà ?
" Mình quên config lại trong file .env " bạn cho mình hỏi file .env này ở đâu vậy ta, mình k hiểu lắm cho nay
Thanks
bạn có thể dùng Pusher thay cho Redis cũng được, nhưng giống như mình mô tả ở đầu bài, Pusher bạn sẽ phải trả phí khi sau này, đồng thời khả năng customize sẽ bị hạn chế, và các tutorials sử dụng Pusher khá là nhiều trên facebook nhưng với Redis khi mình tìm thì hầu như không có hoặc ở các phiên bản đã cũ. Nên mình mới làm ra tut này.
À em thấy bài anh viết bằng js nên em có viết lại để dễ dùng . Cứ copy hết F12 vào console và chạy ạ
Test cái này thế nào vậy?
Bạn post source code lên sẽ dễ hiểu hơn đó.
đọc cuốn hút phết, viết tiếp đi thím
Bài viết hay. Nhưng buồn cho cái unikey trên ubuntu thì ko thấy cộng đồng mạng hỗ trợ nữa
Bài viết rất hay và gợi mở
Nếu e trong trường hợp này đầu tiên cứ format thì sẽ có regex tương ứng. Nhưng để nhớ được nó thì khó quá nên bỏ qua Vì vậy em sẽ bắt đầu viết theo cách 2 vì nó gần với tu duy và logic hơn . và khi viết song chắc nhìn vòn while thì có thể dùng đệ quy được. còn cách 1 em chắc ko nghĩ ra nổi mất =)). Em Nói đùa thế cho vui thôi nhưng cách 1 nếu ai tinh ý ta có thể làm theo cách khác như thế này được không anh
Haha sory bạn nhé mình quên ko ghi mình đang demo trên sql server. 2 loại hình HQTCSDL này no có cú pháp khác nhau nên thành ra bên mysql bạn phải viết khác đi nhé.
inserted = NEW
deleted = OLD
nên bạn chỉ cần chạy ntn là ok nhé
Và vì sao bạn có thể lấy được NEW.SoLuongDat thì nó là tương đương với câu select sau nhé bạn
Bạn có thể xem cú pháp bên mysql trên document hoặc là vào đây cũng đc nhé
https://www.techonthenet.com/mysql/triggers/after_insert.php
Nếu có câu hỏi cứ hỏi nhé. rảnh mình sẽ tìm tòi và giải đáp cho