Tcl过程

Tcl过程相当于其他语言中的函数、方法,是一系列可复用代码的集合。

定义及使用

Tcl过程可通过proc命令定义。

proc procdureName {?arg1 arg2 ... argN?} {body}
proc sayHello {} {
    puts "Hello world!"
}
sayHello

 定长参数

proc add {num1 num2} {
	return [expr $num1 + $num2]
}
puts [add 1 2]

变长参数

变长参数实际上是向过程传入一个可迭代数据结构实现的。

proc addAll {nums} {
    set sum 0
    foreach num $nums {
        set sum [expr $sum + $num]
    }
    return $sum
}
puts [addAll {1 2 3 4 5}]

 默认参数

proc procedureName { arg1 {arg2 defaultValue}... } { body }
proc add {num1 {num2 1}} {
	return [expr $num1 + $num2]
}
puts [add 1]
puts [add 1 2]

 混合使用

三种参数形式可以混合使用,但是要注意的是默认参数必须在最后面,可以后多个默认参数。

proc add {num1 num2 {num3 1}} {
	set sum [expr $num1 + $num3]
	foreach num $num2 {
		set sum [expr $sum + $num]
	}
	return $sum
}
puts [add 1 {}]
puts [add 1 {2 3 4} 5]

 递归调用

proc factorial {number} {
	if {$number<=1} {
		return 1
	} else {
		return [expr $number * [factorial [expr $number -1]]]
	}
}
puts [factorial 5]
puts [factorial 8]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值