找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 7007|回复: 48
打印 上一主题 下一主题

十天学会Skill之第二天

    [复制链接]

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

跳转到指定楼层
1#
发表于 2010-1-27 17:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 deargds 于 2010-1-27 17:58 编辑

十天学会Skill之第二天
By deargds
https://www.eda365.com
学习目的:了解SKILL的一些基础,变量,函数,以及流程控制。

一,我们先了解以下几种数据类型,

整数:integer例如:2, 8, 6
浮点数:float例如:2.3, 9.3265, 0.5, .8,
字符串:string例如:“Hello!”
原子类型:atom例如:t , nil , unbound
链表:list例如:list(1,2,3) '(1,2,3)

给变量赋值,除了使用=之外,还可以使用set函数.
set(a,"hello")

数据类型可使用type函数来查询
例如:a = 1
那么type(a)的返回值为fixnum
a = "string"
type(a)返回值为string

另外链表类型非常有用,在skill中有一系列的函数是针对链表操作的,示例如下:
a = list(5,6,7);定义链表a,内容为5 6 7.
如果想得到链表中第一个值,使用car函数即可,car(a)的结果为5
另外还有append1,cons,remove,reverse,nth等许多函数,大家自己先看HELP吧。
X:\Cadence\SPB_15.7\doc\sklanguser\sklanguser.pdf
其它数据类型如symbol,defstruct,array等请参考
X:\Cadence\SPB_15.7\doc\sklanguser\sklanguser.pdf

二,函数的定义

1.通常使用defun或者procedure来自定义一个函数,两者的作用是一样的,区别只在乎在书写格式的差别
defun(test ()
        ;you can do something
)

procedure(test()
        ;you can do something
)

上面两句同样是定义了一个test函数,defun定义时在函数名后要有一个空格。

2.局部变量的定义,使用let或prog函数,如果不需要在函数内使用跳转函数或者返回值的话使用let即可。
defun(test ()
        let((a)
                ;you can do something
        )
)

上面示例中使用let定义了a为局部变量,其它函数无法访问。

3.函数的参数类型@rest  @optional  @key

@rest不确定数目的参数,可以有多个参数。
defun( test ( @rest a )
        println(a)
)


@optional可选择的参数,在调用该函数时,可以忽略此参数。
defun(test (@optional a )
        println(a)
)


@key指定参数的固定值。
defun(test (a b @key (c 3))
        println(c)
)


ps:@optional 与 @key 不能同时出现在函数参数定义中。

三,流程控制

1.条件判断if when cond unless,
双向判断
if( 3 > 1 then
        println("You know too much!")
else
        println("hehe")
)


when( 3 > 1
        println("You know too much!")
)

unless( 3 < 1
        println("You know too much!")
)

;多向判断
cond(
        (2 > 0 ,println(2))
        (3 < 0 ,println(3))
)

2.循环语句while for foreach

;while示例
i = 0;定义i的初值为0
while((i <= 10)
        i = i + 1;自加一次
        println(i)
)


;for示例
sum = 0;定义sun的初值为0
for( i 1 10
        sum = sum + i;自加一次
        println(sun)
)


;foreach语句,方便用来循环链表类型
foreach( x '(1 2 3 4)
        println(x)
)


3.选择语句case caseq
i = 5 + 6
case( i
        (5 println("no"))
        (11 println("yes"))
        (t 'Other)
)


上面简单介绍需要了解的基本知识,另外想学好SKILL,帮助文件是一定要看的,这个教程只是帮大家入门,不可能过多地去重复教程上已经有的内容。
X:\Cadence\SPB_15.7\doc\sklanguser\sklanguser.pdf
X:\Cadence\SPB_15.7\doc\sklangref\sklangref.pdf

评分

参与人数 2贡献 +10 收起 理由
y175813652 + 5 支持
wg2005 + 5 谢谢分享

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏14 支持!支持!5 反对!反对!
谁画出这天地 又画下我和你

43

主题

421

帖子

1770

积分

EDA365版主(50)

Rank: 5

积分
1770
推荐
发表于 2017-6-8 11:10 | 只看该作者
赞楼主了!可以出本书了~

22

主题

360

帖子

3411

积分

五级会员(50)

Rank: 5

积分
3411
推荐
发表于 2016-11-30 18:22 | 只看该作者
Over了,看不懂E文
活着就是一种挑战!

14

主题

143

帖子

-1万

积分

未知游客(0)

积分
-11958
推荐
发表于 2015-9-15 08:43 | 只看该作者
谢谢,努力学习中

7

主题

183

帖子

354

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
354
49#
发表于 2017-6-19 13:36 | 只看该作者
:):)

7

主题

183

帖子

354

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
354
48#
发表于 2017-6-19 13:36 | 只看该作者
:)

7

主题

183

帖子

354

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
354
47#
发表于 2017-6-19 13:36 | 只看该作者
:):)

0

主题

189

帖子

438

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
438
46#
发表于 2017-6-19 12:27 | 只看该作者
谢谢分享

7

主题

183

帖子

354

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
354
45#
发表于 2017-6-19 12:03 | 只看该作者
打卡

0

主题

85

帖子

211

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
211
44#
发表于 2017-6-18 11:18 | 只看该作者
謝謝分享

7

主题

183

帖子

354

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
354
43#
发表于 2017-6-16 16:50 | 只看该作者
:):)

7

主题

183

帖子

354

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
354
42#
发表于 2017-6-16 16:50 | 只看该作者
:):)

7

主题

183

帖子

354

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
354
41#
发表于 2017-6-16 16:50 | 只看该作者
:)

7

主题

183

帖子

354

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
354
40#
发表于 2017-6-16 16:20 | 只看该作者
很强大

7

主题

183

帖子

354

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
354
39#
发表于 2017-6-16 16:20 | 只看该作者
上班都在学

7

主题

183

帖子

354

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
354
38#
发表于 2017-6-16 16:20 | 只看该作者
感谢

7

主题

174

帖子

609

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
609
37#
发表于 2017-6-8 13:48 | 只看该作者
一头雾水额
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-15 09:25 , Processed in 0.068536 second(s), 37 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表