Đối số thẩm quyền
Chà ... Rõ ràng, hầu hết các ngôn ngữ, kể cả những ngôn ngữ gần đây, đều dựa trên không. Vì những ngôn ngữ đó được viết bởi những người khá thành thạo, bạn của bạn phải sai ...
Tại sao một?
Tại sao 1 sẽ là một chỉ số bắt đầu tốt hơn 0? Tại sao không phải 2, hay 10? Câu trả lời tự nó rất thú vị vì nó cho thấy rất nhiều về quá trình mặc dù mọi người bảo vệ ý tưởng.
Các đầu tranh luận là nó tự nhiên hơn, bởi vì 1 thường là một trước khi tất cả những người khác, ít nhất, đối với đa số người ...
Đối số số một là chỉ mục cuối cùng cũng là kích thước của mảng ...
Tôi vẫn bị ấn tượng bởi "chất lượng" của những lý do tôi thường nghe cho loại tranh luận này ... Và thậm chí nhiều hơn khi tôi nhắc rằng ...
Tại sao không bằng không?
... Các ký hiệu "một nền tảng" còn sót lại từ văn hóa phương Tây mà bỏ qua sự tồn tại của số 0 trong nhiều thế kỷ, nếu không muốn nói là nhiều hơn.
Dù bạn có tin hay không, lịch gốc của gregorian đi từ -3, -2, -1, 1, 2, 3 ... Hãy thử tưởng tượng vấn đề mà nó đã đóng góp cho khoa học phương tây (ví dụ, bao nhiêu năm kể từ ngày 1 tháng 1 -2 đến ngày 1 tháng 1 để xem hơn lịch gốc của gregorian xung đột với một cái gì đó đơn giản như chất nền ...).
Giữ một dựa trên mảng là như thế nào (tốt, tôi sẽ được downmodded cho rằng ... ^ _ ^ ...), giữ để dặm bãi trong thế kỷ 21 ...
Tại sao không? Bởi vì đó là toán học!
Đầu tiên (OOops ... Xin lỗi ... Tôi sẽ thử lại)
Zero , Zero không là gì cả, một là một cái gì đó. Và một số văn bản tôn giáo cho rằng "Lúc đầu, không có gì". Một số cuộc thảo luận liên quan đến máy tính có thể bùng cháy như các cuộc tranh luận tôn giáo, vì vậy điểm này không nằm ngoài chủ đề vì có vẻ như ... ^ _ ^
Đầu tiên , làm việc với mảng dựa trên zero dễ dàng hơn và bỏ qua giá trị 0 của nó so với làm việc với mảng dựa trên một lần và hack xung quanh để tìm giá trị 0 của nó. Lý do này gần như ngu ngốc như trước đây, nhưng sau đó, đối số ban đầu ủng hộ các mảng dựa trên một cũng khá ngụy biện.
Thứ hai , chúng ta hãy nhớ rằng khi xử lý các con số, rất có thể bạn sẽ đối phó với toán học lúc này hay lúc khác, và khi bạn đối phó với toán học, rất có thể bạn sẽ không có tâm trạng cho những vụ hack ngu ngốc để vượt qua những quy ước lỗi thời. Các ký hiệu dựa trên một nền tảng đã làm vấy bẩn toán học và ngày tháng trong nhiều thế kỷ, và bằng cách học hỏi từ những sai lầm của chúng ta, chúng ta nên cố gắng tránh nó trong các ngành khoa học định hướng trong tương lai (bao gồm cả ngôn ngữ máy tính).
Thứ ba , đối với các mảng ngôn ngữ máy tính được gắn với phần cứng, hãy phân bổ một mảng C gồm 21 số nguyên và di chuyển con trỏ 10 chỉ số sang phải và bạn sẽ có một mảng [-10 đến 10] tự nhiên. Điều này không tự nhiên đối với phần cứng. Nhưng nó là dành cho toán học. Tất nhiên, toán học có thể bị lỗi thời, nhưng lần cuối cùng tôi kiểm tra, hầu hết mọi người trên thế giới đều tin rằng nó không phải vậy.
Bốn , Như đã chỉ ra ở nơi khác, ngay cả đối với vị trí rời rạc (hoặc khoảng cách giảm xuống các giá trị rời rạc), chỉ số đầu tiên sẽ bằng 0, giống như sàn trong tòa nhà (bắt đầu từ 0), đếm ngược giảm (3, 2, 1, ZERO !), độ cao mặt đất, pixel đầu tiên của hình ảnh, nhiệt độ (zero Kelvin, đối với độ không tuyệt đối hoặc 0 độ C, khi nhiệt độ đóng băng của nước là 273 K). Trong thực tế, điều duy nhất thực sự bắt đầu với một là cách truyền thống " thứ nhất , thứ hai , thứ ba , v.v." ký hiệu lặp lại , dẫn tôi tự nhiên đến điểm tiếp theo ...
Năm sự tiếp điểm (trong đó một cách tự nhiên theo trước ) là container cấp cao nên được truy cập, không theo chỉ số, nhưng bằng cách lặp , trừ khi các chỉ số chính mình có một giá trị nội tại. Tôi ngạc nhiên khi người ủng hộ "ngôn ngữ cấp cao hơn" của bạn không đề cập đến điều đó. Trong trường hợp bản thân chỉ số là quan trọng, bạn có thể đặt cược một nửa thời gian bạn có một câu hỏi liên quan đến toán học trong đầu. Và do đó, bạn muốn hộp đựng của mình thân thiện với toán học và không bị vô hiệu hóa toán học như "lịch cũ của bạn" bắt đầu từ 1, và cần các bản hack được lấy lại để làm cho nó hoạt động.
Phần kết luận
Đối số được đưa ra bởi lập trình viên đồng nghiệp của bạn là ngụy biện bởi vì nó không cần thiết ràng buộc các thói quen ngôn ngữ nói / viết, về bản chất, mờ, với ngôn ngữ máy tính (nơi bạn không muốn hướng dẫn của mình bị mờ) và bởi vì gán sai phần cứng Lý do cho vấn đề này, he.she hy vọng sẽ thuyết phục bạn, khi các ngôn ngữ ngày càng trừu tượng hơn, rằng mảng dựa trên zero là một điều của quá khứ.
Mảng dựa trên zero là dựa trên zero vì lý do liên quan đến toán học. Không vì lý do liên quan đến phần cứng.
Bây giờ, nếu đây là một vấn đề đối với lập trình viên đồng nghiệp của bạn, hãy để anh ta bắt đầu lập trình với các cấu trúc cấp cao thực sự, như các vòng lặp và các vòng lặp foreach.