找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 7006|回复: 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 | 只看该作者
谢谢,努力学习中

5

主题

109

帖子

1925

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1925
2#
发表于 2010-1-27 18:07 | 只看该作者
写的很明了

78

主题

545

帖子

1万

积分

七级会员(70)

Rank: 7Rank: 7Rank: 7

积分
14702
3#
发表于 2010-1-27 18:45 | 只看该作者
很用心!支持!
迷失方向

42

主题

222

帖子

1513

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1513
4#
发表于 2010-1-27 22:47 | 只看该作者
楼主的帖子实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得入木三分,能在有生之年看见楼主的这个帖子。实在是我三生之幸啊。看完楼主的这个帖子之后,我竟产生出一种无以名之的悲痛感——啊,这么好的帖子,如果将来我再也看不到了,那我该怎么办?那我该怎么办?直到我毫不犹豫地把楼主的这个帖子收藏了,我内心的那种激动才逐渐平静下来。可是我立刻想到,这么好的帖子,倘若别人看不到,那么不是浪费楼主的心血吗?经过痛苦的思想斗争,我终于下定决心,牺牲小我,奉献大我。我要拿出这帖子奉献给世人赏阅,我要把这个帖子一直往上顶,往上顶!顶到所有人都看到为止!
[img][/img]

42

主题

222

帖子

1513

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1513
5#
发表于 2010-1-27 22:48 | 只看该作者
[img][/img]

0

主题

18

帖子

-8937

积分

未知游客(0)

积分
-8937
6#
发表于 2010-1-28 15:17 | 只看该作者
感谢楼主分享~

37

主题

664

帖子

-6048

积分

未知游客(0)

积分
-6048
7#
发表于 2010-1-29 11:46 | 只看该作者
看的额一头雾水啊

37

主题

664

帖子

-6048

积分

未知游客(0)

积分
-6048
8#
发表于 2010-1-29 11:47 | 只看该作者
先慢慢看,学习下

6

主题

288

帖子

764

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
764
9#
发表于 2010-1-29 14:39 | 只看该作者
学习了,感谢LZ

3

主题

71

帖子

-1万

积分

未知游客(0)

积分
-11992
10#
发表于 2010-1-29 17:50 | 只看该作者
学习中,感谢楼主

48

主题

646

帖子

5643

积分

五级会员(50)

Rank: 5

积分
5643
11#
发表于 2010-1-29 19:55 | 只看该作者
Thanks a lot.

0

主题

4

帖子

-8992

积分

未知游客(0)

积分
-8992
12#
发表于 2010-9-21 10:51 | 只看该作者
很有用!~duoxie分享

2

主题

9

帖子

-8966

积分

未知游客(0)

积分
-8966
13#
发表于 2010-9-27 15:52 | 只看该作者
继续支持LZ

0

主题

17

帖子

-1万

积分

未知游客(0)

积分
-11233
14#
发表于 2011-2-15 17:12 | 只看该作者
第一天是入门,第二天就开始详解了,继续学习

3

主题

38

帖子

274

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
274
15#
发表于 2011-12-26 11:24 | 只看该作者
赞一个
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-15 06:08 , Processed in 0.069483 second(s), 39 queries , Gzip On.

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

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

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