首页 > 其他分享 >aardio入门到精通05-名字空间

aardio入门到精通05-名字空间

时间:2024-10-14 14:21:43浏览次数:1  
标签:console log .. 05 aardio global 名字 空间 入门

名字空间

import console; 
/*
名字空间组织、归类、标识一组具名对象的名字,是模块化编程的重要基础。 
1. var定义的局部变量有保护变量的作用,其它文件不能调用
2. 成员变量是名字空间里的变量,加前缀名字空间名来访问,在全局名字空间里可以不加前缀名字空间名
3. 不同的名字空间,相同的成员变量名不会相互影响
4. 名字空间的定义:
	namespace namespaceName{
  	//名字空间内部代码
	}
5. 名字空间可以嵌套:
	namespace namespaceName1{
    	namespace namespaceName2{
        	//名字空间内部代码
        	var member = 111
    	}
	}
	
	namespaceName1.namespaceName2.member = 123
	
6. 名字空间可以省略语句块标记{},表示名字空间作用域直至该代码文件结束:
    namespace namespaceName	
    
7. 如果在名字空间前面加上两个连续的小圆点 .. 作为前缀,则该名字空间为全局名字,如下:
	import console; 
	namespace namespaceName{
    	namespace ..globalNamespaceName{
	
        	//名字空间内部代码
        	member = 123
    	}
	}
	console.log( globalNamespaceName.member );
	console.pause(true);
	
8. 名字空间其实也是一个普通的 table 对象。
9. 访问顶层名字空间要使用 .. 操作符。
10. global 与 self 名字空间
self 表示当前名字空间。
global 为默认的全局名字空间,当aardio代码文件加载时,默认都运行在global名字空间。 
默认的名字空间为 global,也就是说 self 默认指向 global。	

*/


// 一、通过名字空间引用名字空间内的成员变量a
// 1) 在本空间内定义一个 b   在用户库的名字空间 myFirstLib 内定义一个 局部变量 a 和一个成员变量b
console.log("3------------------------------------------")
import myFirstLib;

a = 3
var b = 5
console.log(b,myFirstLib.a)  // 5   null
console.log(b,myFirstLib.b)  // 5   20


// 2) 名字空间的局部变量和成员变量
console.log("4------------------------------------------")
// 名字空间内部:
namespace test{
	// 局部变量 
	var m = 10  // 不能通过 myFirstLib.b 的方式使用,否则得到 null,局部变量只能在此名字空间内起作用,
	
	// 成员变量
	n = 20      // 这个可以被此名字空间之外的地方通过 myFirstLib.b 的方式使用
}
// 名字空间外部:
console.log(m,n)             // null   null
console.log(test.m)          // null 
console.log(test.n)          // 20


// 3) global 与 self
// 全局的名字空间 global (通常缺省) 
// 凡是不在别的名字空间内的变量都在全局的名字变量内
console.log("5------------------------------------------")
x = "你好"
var y = "aardio"
console.log(global.x)          // 你好  等同于 console.log(c)
console.log(y)                 // aardio 
console.log(global.y)          // 空值 null 不显示
console.log(global.y == null)  // true

// self 指向 本名字空间,在 global 名字空间内指向 global 在自定义的名字空间则指向自定义的名字空间
e = 3
var f = 6
console.log(self.e)          // 3 
console.log(global.e)        // 3
console.log(self.f)          // null
console.log(global.f)        // null

console.log("6------------------------------------------")
var str1 = "abcdef"
str2 = "我是外层名字空间的变量"
_str3 = "我是常量"
namespace test2{
	// 局部变量 
	var m = 10  // 不能通过 myFirstLib.b 的方式使用,否则得到 null,局部变量只能在此名字空间内起作用,
	
	// 成员变量
	n = 20      // 这个可以被此名字空间之外的地方通过 myFirstLib.b 的方式使用
	
	// 1)self 在名字空间中的使用 
	..console.log(self.m)  // null 
	..console.log(self.n)  // 20
	
	// 在一个名字空间内使用标准库或用户库,需要先导入进来,或者其外层名字空间内已经导入了,可以使用 ..库名 的方式引用
	import console
	console.log(self.n)    // 20
	
	// 2).. 的使用  ..相当于 global 而不一定是上一层
	console.log(..str1)    // null 
	console.log(..str2)    // 我是外层名字空间的变量   相当于 console.log(global.str2)
	console.log(global.str2)
	console.log(.._str3)   // 我是常量    相当于 console.log(global._str3)
	
	namespace test3{
		import console
		console.log(..test2.n)  //20
		console.log(..str2)     //我是外层名字空间的变量   相当于 console.log(global.str2)	
	}
	
	
}


// 二、关于名字空间是表的理解:
// console.dump(test2)  // 可以看出是表,并且包含很多信息
console.log("7------------------------------------------")
global["str4"] = "我是一个字符串"
console.log(global["str4"])

my_str = "hello" 
console.log(global["my" + "_str"])  // hello

b1 = "hello"
console.log(global["b" + 1])        // hello

// 上述方法的用处:
/*
import win.ui 
for(i=1;3;1){
	win.msgbox(winform["button" + i].text)
}
*/


console.pause();

标签:console,log,..,05,aardio,global,名字,空间,入门
From: https://www.cnblogs.com/Collin-pxy/p/18463552

相关文章

  • 神仙级AI大模型入门教程(非常详细),从零基础入门到精通,从看这篇开始!
    一.初聊大模型1.为什么要学习大模型?在学习大模型之前,你不必担心自己缺乏相关知识或认为这太难。我坚信,只要你有学习的意愿并付出努力,你就能够掌握大模型,并能够用它们完成许多有意义的事情。在这个快速变化的时代,虽然新技术和概念不断涌现,但希望你能静下心来,踏实地学习。一旦......
  • mybatis入门案例-传参类型和方式
    mybatis传参类型和方式主要分享一下mybatis的mapper接口参数类型和传参方式,适用于初学者。直接上代码:pom.xml文件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta......
  • K8s-实战入门-ns、pod、label、deployment
    一、 Namespace(ns)Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分......
  • jsp大学新生军训管理系统57a05(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表教官,学生,连队,教官评价,军训项目,考核制度,军训风采,考核成绩,应急知识开题报告内容一、研究背景与意义大学新生军训是高等教育的重要组成部分,旨在培养学生......
  • AI绘画StableDiffusion零基础入门,轻松制作你的赛博Coser,SD图生图全网最强指南
    AI绘画因“赛博Coser”事件大规模破圈,以前只在二次元中存在的角色变成栩栩如生的真人跃出画面,你是否好奇这些老婆们是怎么画出来的?缘起:赛博Coser事件AI绘画第一次大规模破圈源于早前科技博主“勘云工造”使用AI技术创作的一系列作品。他训练的“赛博Coser”......
  • AI绘画StableDiffusion零基础入门—文生图:全面解析AI绘画中提示词的妙用和各种语法,Pro
    AI绘画的一个必不可少的环节就是告诉AI描述画面的Prompt(提示词),但是这种很长很乱、穿插着各种奇怪的数字符号、高深莫测的提示词,究竟在说着什么?难道真的是咒语吗?魔法?咒语?你绝对不曾想到,有生之年竟然能迎来这么一个奇迹时代:画画竟然还能用魔法,岂不是只要会念咒、人人都......
  • AI绘画SD零基础入门到精通教程,新手小白AI扫盲教程,一文搞懂MIdjourney和StableDiffusio
    大家好,我是强哥Midjourney是目前全网最强大的AI绘画平台,用户只需要简单地输入关键词描述,就能获得多幅风格各异的绘画作品,无需任何专业的绘画技能,即刻拥有让人惊叹的艺术创造力。在MidjourneyV5版本之前,用户可以享受免费使用额度,只需要注册一个账户即可在线体验AI绘画。......
  • CTFshow-web入门(1-20)-信息搜集
    信息搜集目录信息搜集web1web2web3web4web5web6web7web8web9web10web11web12web13web14web15web16web17web18web19web20web1打开网页发现没有东西查看源代码发现flagflag:ctfshow{c530c49f-f86e-49bc-bc58-8a493b179adb}web2手动添加view-source:flag:ctfshow{7d18c83c......
  • 零基础学习网工第2天 —— 小白入门系列
    零基础学习网工第2天——小白入门系列静态路由手动配置而非动态决定,需要管理员进行手动配置。实验:通过两个路由器实现pc和server的通信PC去往不同的网段需要经过网关,网关需要查路由表,一步步将数据传到目标。实现跨路由器的数据包传递,ip如下图所示。配置PC1的IP、子......
  • 2024.10.14 1105版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......