Thay vì các hàm , bắt đầu với chương trình con . Nói với họ rằng một chương trình chỉ là một danh sách các hướng dẫn, một công thức để nói với máy tính cách làm một cái gì đó. Và rằng nó đang được thực hiện hết lệnh này đến lệnh khác (với khả năng thực hiện song song một số bước, nhưng sẽ nói thêm về điều đó sau).
Một số tác vụ khá phổ biến và lặp đi lặp lại, vì vậy sẽ rất tệ nếu chúng ta phải viết đi viết lại nhiều lần, vì vậy chúng ta viết chúng chỉ một lần và tạo ra một "chương trình nhỏ hơn" - một chương trình con , có thể được sử dụng lại bởi các phần khác của chương trình. Để có thể thực hiện nó nhiều lần, chúng tôi đặt cho nó một cái tên có ý nghĩa trong chương trình của chúng tôi. Và sau đó chúng ta có thể sử dụng tên đó khi chúng ta muốn thực hiện "chương trình nhỏ" này như một phần của một chương trình lớn hơn, bằng cách gọi nó bằng tên đó.
Gọi một chương trình con giống như triệu tập một con quỷ biết cách thực hiện nhiệm vụ đó, bằng tên của con quỷ đó. Vì vậy, khi chúng tôi muốn thực hiện nhiệm vụ cụ thể đó trong chương trình của mình, chúng tôi viết "gọi con quỷ tên là Argoth", và con quỷ xuất hiện và thực hiện nhiệm vụ cho chúng tôi khi chúng tôi hướng dẫn anh ấy làm, và sau đó chúng tôi có thể tiếp tục việc làm.
Đôi khi con quỷ yêu cầu một số thông tin bổ sung mà không có nó, anh ta không thể quyết định nhiệm vụ nào sẽ thực hiện, hoặc những gì chúng ta thực sự muốn từ anh ta. Ví dụ như nếu con quỷ có nghĩa vụ phải xây dựng một lâu đài, ông có thể cần phải biết nơi ông có nghĩa vụ phải xây dựng nó, hoặc lớn như thế nào , vv Đó là các đối số truyền cho các con quỷ ... Ý tôi là, các chương trình con, mà bây giờ trở thành bán tham số .
Các tham số là những phần thông tin bị thiếu, nhưng bắt buộc, để thực hiện nhiệm vụ. Họ thay đổi những gì chương trình con có thể làm một chút. Chúng giống như các ô trống trong công thức cần được điền trước khi chúng tôi có thể thực hiện nó.
Lập luận , mặt khác, là những thông tin thực tế (giá trị) mà chúng tôi cung cấp cho các thông số này.
Đối với thực thi song song, chúng ta có thể nghĩ về nó theo cách này: luôn có ai đó (hoặc một cái gì đó ) đang thực hiện chương trình (danh sách các hướng dẫn). Đó cũng là một con người khác (bạn có biết rằng "máy tính" đã từng là tên của một người đang thực hiện tính toán không?) Hoặc một cỗ máy. Một chương trình chỉ là một danh sách các hướng dẫn, nó không tự hoạt động. Phải có ai đó hoặc một cái gì đó sẽ thực hiện quá trình tính toán(thực hiện các hành động này từ danh sách). Và đôi khi những hành động này có thể được thực hiện song song - chúng tôi có thể phân phối các bản sao của danh sách cho nhiều người và để mỗi người thực hiện một nhóm nhiệm vụ khác nhau từ danh sách, miễn là họ không làm gián đoạn lẫn nhau hoặc không ' T phải chờ kết quả công việc của người khác. Đó là đa luồng cho bạn;)
Đối với sự khác biệt giữa các hàm và chương trình con (còn gọi là thủ tục ), sự khác biệt thông thường là một hàm đang được gọi để tính một giá trị nhất định mà nó trả về do thực thi của nó, trong khi các thủ tục được thực thi chỉ để giải trí;) AKA cho "tác dụng phụ" của họ - chỉ vì lợi ích của các hoạt động được thực hiện từ danh sách.
Nhưng nếu việc gọi một thủ tục hoặc chức năng gây ra một số rắc rối lúc đầu, bạn có thể sử dụng một thuật ngữ khác đã từng phổ biến: nhảy . Người ta có thể nhảy vào một chương trình con, điều đó có nghĩa là bạn dừng thực thi bất cứ điều gì bạn đang làm ngay bây giờ và "nhảy" đến một nơi khác trong danh sách (hoặc bất kỳ danh sách nào khác) - chương trình con - để thực hiện các nhiệm vụ của nó. Sau đó, khi bạn hoàn thành, bạn "nhảy lùi" - nghĩa là bạn quay lại nơi bạn đã bị gián đoạn, để bạn có thể tiếp tục với nhiệm vụ trước đó. Sự khác biệt giữa gọi và nhảy là bây giờ bạn là con quỷ.
Đối với các phương thức được đề cập ở đây bởi ai đó hoặc thực tế là một số ngôn ngữ "không có chức năng, chỉ có phương thức" - điều đó không hoàn toàn chính xác, bởi vì phương thức là chức năng! - một loại đặc biệt của chúng: chúng là các hàm đang được sử dụng để truy xuất một số thông tin được gói gọn bên trong một đối tượng hoặc hoạt động trên chúng. Chúng là một "phương pháp hoạt động trên những dữ liệu đó". Tên đến từ mô hình hướng đối tượng, trong đó dữ liệu được bao quanh với các đối tượng và không thể được vận hành trực tiếp, chỉ bằng các chức năng đặc biệt gọi là "phương thức".
Một phương thức đặc biệt theo một cách khác: nó phải biết đối tượng cụ thể nào được cho là hoạt động / được gọi (đối tượng "này"). Đó là lý do tại sao các phương thức thường được tô điểm bằng một tham số ẩn bổ sung lưu trữ thông tin về đối tượng mà nó được gọi (con trỏ "này"). Điều này làm phức tạp cách thức chức năng được gọi một chút, nhưng đó là "chi tiết triển khai" mà một lập trình viên không nên bận tâm nhiều, miễn là anh ta biết mình đang làm gì.