THẢO LUẬN

thg 8 23, 2020 8:36 SA

//Kiểm tra chuỗi chỉ là ký tự in thường $pattern = '/[a-z]/'; $subject = 'abcd'; if (preg_match($pattern, $subject)){ echo 'true'; } cái này không đúng rồi. Mình đổi chuỗi $subject = 'abcd' thành 'abcd9' nó vẫn trả về true

0
thg 8 23, 2020 7:38 SA

Tạo front-end bằng react-app ở trong thư mục nào ạ. tạo trong thư mục laravel luôn hả anh

0

mình thêm dòng code này vào nó sẽ in ra 6, 7, 8 đúng ý bạn

void main() {
  var callbacks = [];
  for (var i = 6; i < 9; i++) {
    callbacks.add(() => print(i));
  }
  print(callbacks);

  // thêm dòng này vào
  for (final fun in callbacks) { // duyệt qua các biến kiểu hàm trong list callbacks
    fun(); // Call các biến kiểu hàm trong list callbacks và kết quả sẽ được in ra là 6, 7, 8
  }
}

Giải thích: vì biến callbacks là 1 List chứa các biến kiểu hàm (nó là biến nhưng kiểu dữ liệu của nó là hàm) và () => print(i) chính là giá trị của từng biến đó. Cho nên chỉ khi nào các biến kiểu hàm trong list callbacks gọi lệnh call thì hàm print(i) mới được thực thi. Lệnh call chính là toán tử (), biến fun gọi lệnh call nên ghi là fun();

================ Đọc thêm nếu bạn còn confuse về biến kiểu hàm:

Ví dụ sau tạo một biến kiểu hàm:

void Function() bienKieuHam = () => print(69);

Trong đó:

  • bienKieuHam là tên biến
  • void Function(): chính là kiểu dữ liệu của biến giống như kiểu int, double, String ấy mà kiểu này hơi đặc biệt tí gọi là kiểu hàm (Function type). Đã là hàm thì phải có định nghĩa kiểu dữ liệu input và output. Ở đây void là output và ko có input. Ví dụ viết thế này String Function(int, double) là tạo ra một kiểu hàm trong đó String là output và có 2 input là một cái kiểu int, một cái kiểu double
  • dấu = là phép gán, sau dấu = là giá trị của biến. Vậy () => print(69) là giá trị của biến bienKieuHam. Giá trị này có tên thuật ngữ trong Dart là anonymous function hoặc lambda expression hoặc closure.

Ví dụ trên có thể viết lại thế này cho dễ hiểu:

    void Function() bienKieuHam = () => print(69); // tới đây số 69 chưa được in ra đâu. 
    // Vì hàm print(69) nó đang được lưu trữ bên trong biến `bienKieuHam`
    // nó được lưu trữ thôi chứ nó chưa được thực thi nên số 69 sẽ không được in ra.

    bienKieuHam(); // thực thi hàm bên trong biến `bienKieuHam` bằng toán tử `()`  nên dòng code này sẽ in ra 69
0

Có phải code của bạn và ý bạn hỏi là thế này phải ko nhỉ?:

var callbacks = [];
  for (var i = 6; i < 9; i++) {
    callbacks.add(() => print(i)); // chỗ này tại sao không in ra gì mặc dù có lệnh print?
  }
  print(callbacks); // chỗ này thì in ra cái list Closure gì đấy?
+1

Bạn Minh thân mến. Mình thấy đoạn code này trên mạng thật lạ. Có thể giải thích giùm được ko?

code block dưới có lệnh print(i) nhưng khi run lại ko in ra?

// Closures will capture the value of the index (Dart is lexically scoped) var callbacks = []; for (var i = 6; i < 9; i++) { callbacks.add(() => print(i)); } //~~~~~~~~ print(callbacks); // nếu thêm dòng code trên thì sẽ in: [Closure ‘main_closure’ , Closure ‘main_closure’ , Closure ‘main_closure’]

+1

Anh quang ơi e cần hỗ trợ về Burp anh có thể hỗ trợ không ạ ?

0
thg 8 22, 2020 2:45 CH

(thatym)

0

Ví dụ thôi :3

0

không ai làm vậy cả :v

0
Avatar
đã bình luận cho bài viết
thg 8 22, 2020 1:29 CH

Bài viết hay quá 😃)

0

chỗ đấy mình lấy ví dụ thôi bạn, vì local storage không bị xóa đi khi tab hoặc trình duyệt bị tắt đi nên mình tạo một biến rồi mỗi lần load lại trang thì tăng biến đó thêm 1 😄

0

Ý này là sao nhỉ bạn? "Ví dụ: vì dữ liệu được lưu trong Local Storage sẽ không bị mất đi khi trình duyệt bị đóng nên có thể dùng để đếm số lượt truy cập vào trang web."

0
thg 8 22, 2020 11:05 SA

tks a ạ

+1

Additionally, the members generation follows these rules with regard to the members inheritance

Câu này theo như mình hiểu thì có thể nói là: Việc sinh ra các members(phương thức, thuộc tính) trong data class phải tuân theo các quy luật của kế thừa Tức là nếu Data class đứng 1 mình thì không sao, Nhưng nếu data class của chúng ta kế thừa 1 class khác, thì việc sinh tự động các members cũng phải theo các nguyên tắc kế thừa trong OOP

0
thg 8 22, 2020 9:50 SA

e docker-compose down sau đó build lại image rồi docker-compose up.

hoặc chui trực tiếp vào container để cài, nhưng như thế không hay vì khi e down đi sẽ bị mất

0
thg 8 22, 2020 9:11 SA

ah ngon ngon a ạ, e có 1 vấn đề thắc mắc nữa là lúc build image xong, chạy lệnh docker-compose up để run container mà lúc đấy n lại báo bị thiếu 1 module, mà module đó trc mình quên ko để ở file requirements.txt , thì có cách nào mình cài thêm thư viện(module) này vào dc ko a nhỉ?

0

Mình làm lại rồi. Ok

num a=3.5; print(a.runtimeType); // double num b= a.toInt(); //int print(b.runtimeType);

Tks.

+1
thg 8 22, 2020 7:46 SA

a hiểu, trước đây a cũng từng bị. Do bản alpine có 1 số thư viện Python không hỗ trợ. Do đó ở Docker file e đổi thành:

FROM python:3.6-stretch

Đây là bản Debian Stretch, cũng sẽ có khá là đầy đủ các thư viện python, có cả scipy đó e

0
thg 8 22, 2020 7:15 SA

Hay quá bác (like)

0
thg 8 22, 2020 7:06 SA

Thư viên scipy với mấy thư viện nữa cũng ko dc hỗ trợ.
Vậy mỗi cái đó mình phải build 1 image khác nhau đúng ko a?

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í