30/09/2018, 22:33

Hàm min() trả về tham số nào?

Bỗng dưng sáng ngủ dậy có một thắc mắc: nếu hàm min() nhận vào các tham số có giá trị bằng nhau, thì nó sẽ trả về tham số nào?

Mai Anh Dũng viết 00:45 ngày 01/10/2018

Bạn hỏi ngôn ngữ nào?

Thông thường* trả về thằng bên trái, hên xui do người viết thư viên họ code thế nào thôi

Ví dụ như đoạn code sau là hàm std::min của C++98

template <class T> const T& min (const T& a, const T& b) {
  return !(b<a)?a:b;     // or: return !comp(b,a)?a:b; for version (2)
}

Giả sử a == b
Thì (b<a) trả ra false
! của false sẽ được true
Vì true nên sẽ trả ra a


Thông thường mà đạt nói ở đây là vì mình viết từ trái sang phải, nên nếu trả về thì Đạt thích trả về thằng bên trái. Tuy nhiên, phải đọc code của cái hàm đấy mới biết được là trả thằng nào về

anon10499953 viết 00:42 ngày 01/10/2018

Thanks anh Đạt, quả thật là hầu hết các ngôn ngữ đều trả về thằng bên trái nếu các tham số bằng nhau.

Bài liên quan
0