kèo bóng đá cúp c2 8.4.22 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 40. kèo bóng đá cúp c2 - Ngôn ngữ thủ tục Perl | Chuyển tiếp nhanh | NEXT |
Để tạo hàm trong ngôn ngữ kèo bóng đá cúp c2, sử dụng tiêu chuẩnTạo chức năngCú pháp:
tạo chức năngfuncname(đối số loại) Trả vềReturn-Typenhư $$ # kèo bóng đá cúp c2 chức năng cơ thể $$ ngôn ngữ plperl;
Phần thân của hàm là mã perl thông thường. Trong thực tế, Mã keo kèo bóng đá cúp c2 kết thúc nó bên trong một chương trình con Perl. Một kèo bóng đá cúp c2 Hàm phải luôn trả về giá trị vô hướng. Bạn có thể trả lại nhiều hơn các cấu trúc phức tạp (mảng, hồ sơ và bộ) bằng cách trả lại Tài liệu tham khảo, như được thảo luận dưới đây. Không bao giờ trả lại danh sách.
Lưu ý:Việc sử dụng chương trình con được đặt tên là nguy hiểm ở Perl, đặc biệt nếu họ đề cập đến từ vựng Các biến trong phạm vi kèm theo. Vì hàm kèo bóng đá cúp c2 được bọc trong một chương trình con, bất kỳ chương trình con có tên bạn tạo ra sẽ được lồng. Nói chung, việc tạo ra an toàn hơn nhiều Các chương trình con ẩn danh mà bạn gọi qua một coderef. XemperldiagTrang người đàn ông để biết thêm chi tiết.
Cú pháp củaTạo chức nănglệnh yêu cầu cơ thể chức năng được viết dưới dạng chuỗi không thay đổi. Thường thuận tiện nhất khi sử dụng báo giá đô la (nhìn thấyPhần 4.1.2.4) cho hằng số chuỗi. Nếu bạn chọn sử dụng Escape Chuỗi cú phápE '', bạn phải nhân đôi bất kỳ dấu ngoặc đơn (') và dấu gạch chéo ngược (\11757_11801Phần 4.1.2.1).
11886_11981@_,, và giá trị kết quả được trả về vớireturnhoặc là biểu thức cuối cùng được đánh giá trong chức năng.
Ví dụ: một kèo bóng đá cúp c2 trả về lớn hơn của hai số nguyên Các giá trị có thể được định nghĩa là:
Tạo kèo bóng đá cúp c2 perl_max (số nguyên, số nguyên) Trả về số nguyên dưới dạng $$ if ($ _ [0] $ _ [1]) return $ _ [0]; trả về $ _ [1]; $$ ngôn ngữ plperl;
Nếu giá trị null SQLIS
được chuyển cho một kèo bóng đá cúp c2, giá trị đối số sẽ xuất hiện dưới dạng"không xác định"Trong kèo bóng đá cúp c2. Ở trên
Định nghĩa chức năng sẽ không hoạt động rất độc đáo với các đầu vào null
(Trên thực tế, nó sẽ hành động như thể chúng là số không). Chúng ta có thể thêmnghiêm ngặtĐịnh nghĩa chức năng để
làmkèo bóng đá cúp c212858_13127perl_max
với một null và một
Đối số không liên quan để trả về đối số nonnull, thay vì
giá trị null:
Tạo kèo bóng đá cúp c2 perl_max (số nguyên, số nguyên) Trả về số nguyên dưới dạng $$ của tôi ($ x, $ y) = @_; if (! Xác định $ x) if (! Xác định $ y) return undef; trả lại $ y; if (! Xác định $ y) return $ x; if ($ x $ y) return $ x; trả lại $ y; $$ ngôn ngữ plperl;
Như được hiển thị ở trên, để trả về giá trị null SQL từ kèo bóng đá cúp c2 chức năng, trả về một giá trị không xác định. Điều này có thể được thực hiện cho dù chức năng là nghiêm ngặt hay không.
Bất cứ điều gì trong một đối số chức năng không phải là tham chiếu là một Chuỗi, nằm trong tiêu chuẩnkèo bóng đá cúp c2Biểu diễn văn bản bên ngoài cho loại dữ liệu liên quan. Trong trường hợp số thông thường hoặc văn bản các loại, kèo bóng đá cúp c2 sẽ chỉ làm điều đúng đắn và lập trình viên sẽ Thông thường không phải lo lắng về nó. Tuy nhiên, trong các trường hợp khác, Đối số sẽ cần phải được chuyển đổi thành một hình thức nhiều hơn Có thể sử dụng trong kèo bóng đá cúp c2. Ví dụ: đây là cách chuyển đổi một đối số loạibyteathành nhị phân không được phân loại Dữ liệu:
My $ arg = Shift; $ arg = ~ s! \ (?: \ | (\ d 3))! $ 1? chr (tháng 10 ($ 1)): "\"! ge;
Tương tự, kèo bóng đá cúp c2 giá trị được chuyển lại chokèo bóng đá cúp c214546_14679bytea:
$ retval = ~ s! (\ | [^ -~])! Sprintf ("\%03o", ord ($ 1))! Ge; trả về $ retval;
kèo bóng đá cúp c2 có thể trả lạikèo bóng đá cúp c2Mảng dưới dạng tham chiếu đến các mảng kèo bóng đá cúp c2. Đây là một ví dụ:
Tạo hoặc thay thế kèo bóng đá cúp c2 returns_array () Trả về văn bản [] [] như $$ trả về [['a "b', 'c, d'], ['e \ f', 'g']]; $$ Ngôn ngữ plperl; chọn returns_array ();
Đối số loại tổng hợp được chuyển đến kèo bóng đá cúp c2 Tài liệu tham khảo cho băm. Các phím của băm là thuộc tính Tên của loại tổng hợp. Đây là một ví dụ:
Tạo nhân viên bảng ( tên văn bản, Số nguyên cơ sở, Số nguyên thưởng ); Tạo chức năng empcomp (nhân viên) trả về số nguyên như $$ của tôi ($ emp) = @_; trả về $ emp- cơ sở + $ emp- tiền thưởng; $$ Ngôn ngữ plperl; Chọn Tên, Empcomp (Nhân viên.*) Từ nhân viên;
Hàm kèo bóng đá cúp c2 có thể trả về kết quả loại tổng hợp bằng cách sử dụng cách tiếp cận tương tự: trả về một tham chiếu đến một hàm băm có thuộc tính cần thiết. Ví dụ:
Tạo loại testrowperl As (số nguyên F1, văn bản F2, văn bản F3); Tạo hoặc thay thế kèo bóng đá cúp c2 perl_row () trả về testrowperl dưới dạng $$ return f2 = 'xin chào', f1 = 1, f3 = 'thế giới'; $$ Ngôn ngữ plperl; Chọn * từ perl_row ();
Bất kỳ cột nào trong kiểu dữ liệu kết quả được khai báo không phải hiện tại trong băm sẽ được trả về làm giá trị null.
Các chức năng kèo bóng đá cúp c2 cũng có thể trả về các bộ của vô hướng hoặc
loại tổng hợp. Thông thường bạn sẽ muốn trả lại hàng một
thời gian, cả hai để tăng tốc thời gian khởi động và không được xếp hàng
toàn bộ kết quả được đặt trong bộ nhớ. Bạn có thể làm điều này vớireturn_next
như được minh họa dưới đây.
Lưu ý rằng sau lần cuốireturn_next
, bạn phải đặtreturnhoặc (tốt hơn)trở lại
Undef.
16740_17265
Đối với kèo bóng đá cúp c2 bộ kết quả nhỏ, bạn có thể trả về một tham chiếu cho một mảng có chứa vô hướng, tham chiếu đến mảng hoặc tài liệu tham khảo để băm cho kèo bóng đá cúp c2 loại đơn giản, loại mảng và kèo bóng đá cúp c2 loại tổng hợp, tương ứng. Dưới đây là một số ví dụ đơn giản về việc trả lại toàn bộ kết quả được đặt làm tham chiếu mảng:
Tạo hoặc thay thế hàm perl_set_int (int) Trả về số nguyên setof AS $$ trả về [0 .. $ _ [0]]; $$ Ngôn ngữ plperl; Chọn * từ perl_set_int (5); Tạo hoặc thay thế hàm perl_set () trả về setof testrowperl dưới dạng $$ trở lại [ f1 = 1, f2 = 'xin chào', f3 = 'thế giới', f1 = 2, f2 = 'hello', f3 = 'postgresql', f1 = 3, f2 = 'xin chào', f3 = 'kèo bóng đá cúp c2' ]; $$ Ngôn ngữ plperl; Chọn * từ perl_set ();
Nếu bạn muốn sử dụng18139_18147Pragma Với mã của bạn, cách dễ nhất để làm như vậy làset plperl.use_strictđến ĐÚNG VẬY. Tham số này ảnh hưởng đến kèo bóng đá cúp c2 tổng hợp tiếp theo củakèo bóng đá cúp c2kèo bóng đá cúp c2 chức năng, nhưng không kèo bóng đá cúp c2 chức năng đã được biên soạn trong phiên hiện tại. Để đặt tham số trướckèo bóng đá cúp c2có được tải, cần phải thêm"18622_18630"đếnCustom_varable_ClassesDanh sách trongkèo bóng đá cúp c2conf.
Một cách khác để sử dụngnghiêm ngặtPragma là để đặt:
sử dụng nghiêm ngặt;
Trong cơ thể chức năng.