01/10/2018, 14:27
Trong group có ai sử dụng '?:' trong code không ạ?
Cho em khảo sát thử trong group có ai sử dụng ?: trong code không ạ?
VD: thay vì
if (x>y) larger=x;
else larger=y;
thì
`larger=(x>y)?x:y`
Em khảo sát thử code trên mạng em thấy không ai xài ?: cả, mặc dù chương trình vẫn dạy (tất nhiên là có thi)
Bài liên quan
Ý bạn hỏi là vì sao ít dùng
?:
hay là bạn biết rồi và đang khảo sát cộng đồng? Hay cả hai?Một nhóm người không dùng không có nghĩa là không có ai dùng.
Code mình từ 31/12/2017:
Thế đây là câu hỏi hay câu gì?
Đây là một toán tử thông dụng, mình không biết nguồn “khảo sát” của bạn ở đâu nhưng mình thấy ở đâu họ cũng dùng.
Dạ em thử search trên mấy trang như hackerrank, topcoder, vài project trên mạng thì không thấy ạ.
Cá nhân mình thì dùng cực kì nhiều, đặc biệt trong Javascript (khởi tạo các field cho object).
Cách mà bạn dùng để khảo sát là gì?
Mới có vài project vặt mà đã đánh đồng là không có ai dùng
Search kiểu gì? Đưa bằng chứng cho mình xem thử.
Mới dạo qua github:
Tìm if:
Tìm ?:
Surprise
Thách tìm được bằng kí tự đặc biệt ở trên Github
Mấy trang đó là competitive programming mà (kiểu thi thố), mà thi thố thì làm kiểu nào chẳng được,
if ... else
cũng được,? :
cũng được, miễn là thỏa mãn để bài. Còn làm việc thực tế thì vừa phải giải quyết yêu cầu bài toán vừa phải code sạch, gọn, dễ bảo trì, dễ đọc dễ nhìn, sử dụngif - else
luôn dài dòng hơn? :
mà hiệu quả cũng như nhau nên chả ai dùng trong production cả (tất nhiên có ngoại lệ).Hình như GitHub không cho phép tìm các kí tự đặc biệt
hackkerrank ko có ?: thì mình tự viết ?:
ví dụ https://www.hackerrank.com/challenges/grading/problem
giải bằng 1 dòng thôi:
qua bên editorial xem chúng nó giải 5-20 dòng thấy phát mệt
Dùng mod
while (cin >> n) cout << (n >= 38 && n % 5 >= 3 ? n + 5 - n % 5 : n) << '\n';
Mà HR chỉ chấm output chứ ko chấm code nhỉ.
Competitive Programming là thế anh ơi =)) Có bao giờ máy chấm chấm code đâu =))
#OFF_TOPIC
mình không dùng ? với ý là toán tử 3 ngôi như bạn nghĩ Mà mình dùng để biểu thị 1 null trong collection như
animation = gameObject.getComponent<?>();
1 bài ez 1 dòng nữa nè: https://www.hackerrank.com/challenges/birthday-cake-candles/problem
?: xài tá lả đấy thôi
Nhớ ko lầm có 1 trang buộc bạn phải viết code cho một hàm chứ ko phải là viết cả chương trình.
Chuẩn Codefight rồi anh ơi =))
Hi Thong Nguyen Thanh.
Hơi bị lạm dụng tí
SakaDream/Employee-Management-Web-Service/blob/master/src/main/java/com/sakadream/controllers/EmployeeController.java
This file has been truncated. show originalMấy trang kiểu thi thố cũng chỉ cần đúng kết quả, đủ thời gian quy định là pass chứ không ai quan tâm đến code. Nên xài
if - else
hay? :
đều được. Chắc bạn xem vài bài giải trên hackerrank rồi phán mấy trang này không xài? :
Cái này dùng rất nhiều nhé. Điển hình trong React.
Hay nodejs
Hoặc những nơi cần check logic nhiều mà điều kiện lẫn lệnh con ngắn thì dùng hết. Bạn chưa gặp vì bạn CODE CHƯA ĐỦ NHIỀU thôi.
Gặp ternary operator thì chuyển sang if else
Gặp if else thì chuyển sang if không else
Nếu gặp ternary operator mà 1 trong 2 biểu thức trả về giá trị mặc định thì wrap lại thành function, nhiều function quá thì cho qua class Utils. Function dạng
getParameterOrDefault(request.getParameter(), “empty”)
findUserByIdOrDefault(userId, “guest”)
Trong các ngôn ngữ hiện đại đều cung cấp syntax cho dạng default, không chỉ dùng ở scalar value, mà còn có collection, exception, error
Làm vậy code vừa dễ đọc vừa dễ debug