반응형

함수만들기 

 

proc [함수이름] \

{

   내부 함수 구조 생성 후

    return [리턴값]

}

반응형
# 함수만들기

# foo에 3을 대입
set foo 3

# add함수, 입력 인자 a,b에 전역변수  foo까지 더해서 리턴.
proc add {a b} \
{
	global foo ; # 전역변수 선언
	return [expr $a + $b + $foo]
}
# add함수에 1,2인자를 넣어서 출력
puts [add 1 2]
# add함수 리턴값을 addfunc값에 넣어서 출력
set addfunc [add 2 3]
puts $addfunc




# 디폴트 인자(기본값이 정해져있음), 참조형 인자(인자를 넣어도 되고 안 넣어도 되고)
# 여기서 a는 필수인자, ref는 참조인자(넣어도 되고 안넣어도 되고), 1은 값을 안넣을때 자동으로 ref값은 1임.(디폴트 값)
proc plus {a {ref 1}} \
{
	upvar $a r 				; # $a 와 r 을 alias시킴. (r = $a)
	set r [expr $r + $ref]	; # 입력인자 a=r 과 참조인자 더해 r에 대입.
	return $r
}

set var 1
# a에 인자를 대입,  ref값을 안 넣었으므로 자동으로 1이 됨.
puts [plus var]
puts [plus var 2]  ; # 참조변수로 2를 넣었으므로 ref가 2가 들어가게 됨.




#가변인자 (제한 없이 여러 인자 대입 가능)
proc sum {args} \
{
	set s 0
	foreach i $args {
		set s [expr $s + $i]
	}
	return $s
}
puts [sum 1 2 ]
puts [sum 1 2 3 4]	; #인자를 마음데로 넣음. (띄어쓰기가 구분자)

실행 결과

반응형

'TCL\TK' 카테고리의 다른 글

Tcl 기본 문법 예제  (0) 2020.03.27
[TCL/TK] 윈도우10에서 개발 환경 구축  (4) 2020.03.26
TCL/TK Tutorial (튜토리얼)  (0) 2020.03.15

+ Recent posts