aardio编程基础知识与Python互操作方法详解

本文高清配图pdf下载

csdn官方下载

内容概要:本文详细介绍了aardio编程语言的基础知识,包括关键字、数据类型、数据结构、条件和循环结构等。此外,还重点讲解了aardio与Python之间的互操作方法,包括如何运行Python代码、调用Python库以及数据类型的转换。每个知识点都配有详细的代码示例。

适合人群:初学者和有一定编程基础的技术人员,特别是对aardio编程感兴趣或需要进行aardio与Python集成开发的开发者。
使用场景及目标:① 学习aardio的基本语法和常用数据结构;② 掌握aardio与Python之间的互操作技巧;③ 实践项目中涉及跨语言开发时的解决方案。
其他说明:本文不仅提供了理论知识,还通过大量实例帮助读者更好地理解和应用。建议读者跟随示例代码动手实践,以加深理解。

基本语法

关键字

语法系统保留的关键字,关键字在编辑器默认显示为蓝色。aardio全部关键字如下:

var  用于定义局部变量
def  用于定义关键字
null  用于表示空值
and  not  or  逻辑运算符
begin  end    用于包含语句块
false  true  用于表示布尔值
if  else  elseif  用于条件判断语句
select  case  用于条件判断语句
for  in  用于循环语句
while  do  用于循环语句
break  continue  循环中断语句
try  catch  用于捕获异常
class  ctor  用于创建类
function  用于创建函数
return  用于函数中返回值
namespace  用于创建或打开名字空间
import  用于引用库
with  用于打开名字空间
this  用于在类内部表示当前实例对象
owner  用于成员函数中表示调用函数的主体对象
global  用于表示全局名字空间
self  用于表示当前名字空间

数据类型


  1. null

  2. boolean

    true / false
    逻辑非:
    !
    not

    逻辑或
    !!
    or
    :

    逻辑与
    &&
    and
    ?

  3. number
    数值

io.open()

var str =  tostring(123,16) //转换为十六进制字符串
var num = tonumber(str,16) //将十六进制字符串转换为数值

io.print(
    "二进制",tostring( 123,2) ,
    "八进制",tostring( 123,8) ,
    "十六进制",tostring( 123,16) ,
    "十进制",tostring( 123 ) 
);

  1. string
    三种方式都可以表示字符串
    ‘’
    “”
    注释符号:/**/ //

数据结构

arrdio没有很多数据结构,这点和Python不同,arrdio仅有的数据结构是table,复杂的用法可以不管

仅仅了解怎么用table达到数组的效果,怎么用table达到字典的效果就可以了,平时使用不要将两种效果的混合使用
table数组下标从1开始

条件结构

if else

io.open() //打开控制台

var a=1

if(b==1){
   
   
    if(a==1) begin
        io.print("if")
    end
}
elseif(a==11){
   
   
    io.print("elseif")
}
else{
   
   
    io.print("else")
}

switch

与C语言中的switch不同,没有break语句
select指定一个选择器变量或表达式,case语句列举不同的值或条件值,第一个符合条件的case语句将会执行(执行第一个符合条件的case语句以后退出select语句,不会执行多个case语句)。

io.open() //打开控制台

var a = 0;

select( a ) {
   
   

    case 1 {
   
    //判断 1===a 是否为真 
        io.print("a==1")
        //其他代码
    }
    case 1,9,10 {
   
    //判断 a 是否其中的一个
        io.print("a是1,9,10其中之一")
    }
    case 10;20 {
   
    //判断 ( 10<=a and a <=20 ) 是否为真
        io.print("a在10到20的范围")
    }
    case !=0{
   
    //判断 a是否不等于0,这是自已指定关系运算符的示例
        io.print("a不等于0")
    }
    else{
   
    //所有条件不符时执行else语句块
        io.print("a是其他值(0)")
    }
} 

循环结构

while

while( 条件判断语句 ) {
   
     
  //需要循环执行的语句
} 
io.open()

var countLoop = 0
while( countLoop<10 /*这里指定进入并重复执行循环语句的条件*/ ){
   
    
    countLoop++ 
    
    io.print("循环次数", countLoop); 
}; 

execute("pause") //按任意键继续
io.close();//关闭控制台

do…while

至少会执行一次

do{
   
     
  //需要循环执行的语句
} while( 条件判断语句 )

do{
   
    
    io.print(countLoop)
    countLoop++
}while( countLoop<123 ); //判断条件

for

步进的数值,而不是i++等,这一点注意下

for( 计数器变量= 初始数值; 最大数值; 步进数值) {
   
    //步进可以省略,默认值为1。
  //需要循环执行的语句
} 
io.open();

for( i=1;10;2 ){
   
    //计数器i从1循环到10,每次递增2 
   io.print(i)
}


//支持修改计数器变量
for( i=1;10;1 )begin 
   i++;//如果你将i赋值为非数字,在下次循环以前将会被自动恢复为计数器值
end;

//递减计数器
for( i=1;-10;-1 )begin 
   io.print(i) 
end;

execute("pause") //按任意键继续
io.close();//关闭控制台

for…in

重点知识

名字空间

global

建立n个aardio脚本,默认这些脚本均在global名字空间,里面不带var关键字的变量,均在global名字空间下。
特别注意的一点是,内核库被导入了global名字空间如string库,其他名字空间访问string,前面需要加 … 或者 global,…string 或者 global.string
这个特点和Python很不一样,Python搜索的顺序是LEGB,在新的命名空间下,访问通用的函数,如打开文件的open,无须有…等声明。自动在当下命名空间找open,在到闭包里找,再到全局变量找,再到内建空间找,open就在内建空间里。
而aardio,仅在当前名字空间找string,如果没有找到就报错,所以解决方法有两个

  1. 指定string在哪,在 global空间,aardio推荐做法
  2. 在当前命名空间,import string,当前命名空间就有了string
import console
console.open()

a = 10  // 默认就在global空间
var a = 100 // 局部变量

console.log(a)  // a 默认访问局部变量(带var 的 a),如果没有,继续访问当前名字空间的a

// 当前名字空间为global空间
console.log(global.a)
console.log(self.a)  // self表示当前空间,为global空间

namespace tmp{
   
   
    ..console.log(self.a)  // self 表示当前空间,为tmp空间
}

console.pause(true)

/*
100
10
10

*/

self

aardio用self关键字指代当前名字空间,这一点和Python不同,Python用self指代当前实例

import console;

a = 10;  // 全局名字空间,这个变量为全局名字空间的成员变量
namespace test{
   
   
    b 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值