日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux应用参数 冒号,Lua-面向对象中函数使用时冒号(:)和点(.)的区别

發布時間:2024/8/23 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux应用参数 冒号,Lua-面向对象中函数使用时冒号(:)和点(.)的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Lua-面向對象中函數使用時冒號(:)和點(.)的區別,我們先來看一段簡單的代碼:

local Animal ={}functionAnimal:Eat( food )print("Animal:Eat", self, food)end

functionAnimal.Sleep( time )print("Animal.Sleep", self, time)endAnimal:Eat("grass")

Animal.Eat("grass")

Animal:Sleep(1)

Animal.Sleep(1)

輸出結果為:

Animal:Eat table: 0x7f8421c07540 grass

Animal:Eat grassnilAnimal.Sleepniltable: 0x7f8421c07540

Animal.Sleepnil 1

由此可見,

定義:

在Eat(冒號函數)內部有一個參數self,在Sleep(點函數)內部沒有參數self;

調用:

用冒號(:)調用函數時,會默認傳一個值(調用者自身)作為第一個參數;

用點(.)調用函數時,則沒有;

-- 如果要使結果一致,則:

Animal:Eat("grass")

Animal.Eat(Animal,"grass")

Animal:Sleep()

Animal.Sleep(Animal)

輸出結果:

Animal:Eat table: 0x7f8421c07540 grass

Animal:Eat table: 0x7f8421c07540 grass

Animal.Sleepniltable: 0x7f8421c07540

Animal.Sleepnil table: 0x7f8421c07540

-- 我們為什么可以用.和:來定義函數

function Animal.Sleep( time ) end

-- 這種寫法是一種語法糖(syntactic sugar),它的原型是:

Animal.Sleep = function ( time ) end

用雙冒號(:)時,也是一種語法糖,實際上默認傳遞一個self(Animal)參數:

function Animal:Eat( food ) end

等價于

function Animal.Eat( self, food ) end

可參考Lua函數定義:

http://www.lua.org/manual/5.2/manual.html#pdf-next

3.4.10 –?Function Definitions

The syntax for function definition is

functiondef ::= function funcbody

funcbody ::= ‘(’ [parlist] ‘)’ block end

The following syntactic sugar simplifies function definitions:

stat ::= function funcname funcbody

stat ::= local function Name funcbody

funcname ::= Name {‘.’ Name} [‘:’ Name]

The statement

function f () body end

translates to

f = function () body end

The statement

function t.a.b.c.f () body end

translates to

t.a.b.c.f = function () body end

The statement

local function f () body end

translates to

local f; f = function () body end

not to

local f = function () body end

Lua 的詳細介紹:請點這里

Lua 的下載地址:請點這里

總結

以上是生活随笔為你收集整理的linux应用参数 冒号,Lua-面向对象中函数使用时冒号(:)和点(.)的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲综合免费观看高清完整版在线 | 天使色吧 | 国产视频亚洲 | 亚洲AV无码国产日韩久久 | 男生女生操操操 | 国产精品--色哟哟 | 无码一区二区三区 | 日韩欧美久久精品 | 91网站在线免费观看 | 免费观看一区 | 欧美人与动物xxxxx | 黄色一级大片在线免费看国产一 | 可以免费看av| 国产91嫩草 | 末路1997全集免费观看完整版 | 国产超碰精品 | 激情拍拍| 丰满尤物白嫩啪啪少妇 | 日韩午夜免费视频 | www.99在线| 999超碰| 大尺度一区二区 | 无码人妻一区二区三区在线 | 亚洲成a人在线观看 | 成人一区二区三区仙踪林 | 午夜免费看 | 少妇闺蜜换浪荡h肉辣文 | 秋霞午夜 | 欧美大片大全 | 亚洲成av人片 | 伊人久久狼人 | 国产动漫av| v888av| 国产乱论视频 | 777国产成人入口 | 日本伊人久久 | 欧美黄色一区 | 日日摸天天爽天天爽视频 | 深夜福利在线免费观看 | 亚洲一区二区三区久久久成人动漫 | 情侣作爱视频网站 | 国产麻豆精品在线观看 | 日韩三级黄 | 午夜性生活片 | 激情欧美网站 | 中文字幕av第一页 | 人人免费操 | 欧美脚交| 人妻与黑人一区二区三区 | 午夜剧场免费观看 | 亚洲男人第一网站 | 国产精品久久久久久久久久久不卡 | 女人扒开屁股让我添 | 一本色道久久综合亚洲精品图片 | 国产无精乱码一区二区三区 | 亚洲欧美影院 | 亚洲一区二区av在线 | 四虎com | 岛国av不卡 | 19韩国主播青草vip | 91精品国产色综合久久不卡98 | 多毛的亚洲人毛茸茸 | a中文字幕| 国产精品毛片一区二区三区 | 日韩成人高清视频在线观看 | 亚洲wwwwww| 福利社91| 久草福利视频 | 中文字幕无线码一区 | 色眯眯视频 | 中文一区视频 | 国产精品成人免费精品自在线观看 | 中文字幕乱码中文乱码b站 国产一区二区三区在线观看视频 | 久久免费在线观看 | 肉肉av福利一精品导航 | 亚洲经典自拍 | 欧美精品成人 | 超碰人人人人人 | 欧美两根一起进3p做受视频 | 中文字幕在线观看三区 | 国内性爱视频 | 国产日韩激情 | 色综合久久久久综合体桃花网 | 日韩欧美精品中文字幕 | 久一视频在线观看 | 国产又粗又猛又爽又黄的视频一 | 东北少妇av | 亚洲aⅴ在线观看 | 欧洲美熟女乱又伦 | 日韩一区二区三区电影 | 黄色操人视频 | 无码人妻aⅴ一区二区三区有奶水 | 日韩亚洲精品中文字幕 | 欧美日韩在线视频免费播放 | 麻豆伦理片 | 台湾a级片| 国产系列精品av | 国产黑人| 国产激情一区二区三区视频免樱桃 |