Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
11
Task/Named-parameters/Tcl/named-parameters-1.tcl
Normal file
11
Task/Named-parameters/Tcl/named-parameters-1.tcl
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
proc example args {
|
||||
# Set the defaults
|
||||
array set opts {-foo 0 -bar 1 -grill "hamburger"}
|
||||
# Merge in the values from the caller
|
||||
array set opts $args
|
||||
# Use the arguments
|
||||
return "foo is $opts(-foo), bar is $opts(-bar), and grill is $opts(-grill)"
|
||||
}
|
||||
# Note that -foo is omitted and -grill precedes -bar
|
||||
example -grill "lamb kebab" -bar 3.14
|
||||
# => ‘foo is 0, bar is 3.14, and grill is lamb kebab’
|
||||
18
Task/Named-parameters/Tcl/named-parameters-2.tcl
Normal file
18
Task/Named-parameters/Tcl/named-parameters-2.tcl
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
package require opt
|
||||
tcl::OptProc example {
|
||||
{-foo -int 0 "The number of foos"}
|
||||
{-bar -float 1.0 "How much bar-ness"}
|
||||
{-grill -any "hamburger" "What to cook on the grill"}
|
||||
} {
|
||||
return "foo is $foo, bar is $bar, and grill is $grill"
|
||||
}
|
||||
example -grill "lamb kebab" -bar 3.14
|
||||
# => ‘foo is 0, bar is 3.14, and grill is lamb kebab’
|
||||
example -help
|
||||
# Usage information:
|
||||
# Var/FlagName Type Value Help
|
||||
# ------------ ---- ----- ----
|
||||
# ( -help gives this help )
|
||||
# -foo int (0) The number of foos
|
||||
# -bar float (1.0) How much bar-ness
|
||||
# -grill any (hamburger) What to cook on the grill
|
||||
16
Task/Named-parameters/Tcl/named-parameters-3.tcl
Normal file
16
Task/Named-parameters/Tcl/named-parameters-3.tcl
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
proc example {x y args} {
|
||||
set keyargs {arg1 default1 arg2 default2}
|
||||
if {[llength $args] % 2 != 0} {
|
||||
error "$args: invalid keyword arguments (spec: $keyargs)"
|
||||
}
|
||||
set margs [dict merge $keyargs $args]
|
||||
if {[dict size $margs] != [dict size $keyargs]} {
|
||||
error "$args: invalid keyword arguments (spec: $keyargs)"
|
||||
}
|
||||
lassign [dict values $margs] {*}[dict keys $margs]
|
||||
puts "x: $x, y: $y, arg1: $arg1, arg2: $arg2"
|
||||
}
|
||||
example 1 2 # => x: 1, y: 2, arg1: default1, arg2: default2
|
||||
example 1 2 arg2 3 # => x: 1, y: 2, arg1: default1, arg2: 3
|
||||
example 1 2 test 3 # => test 3: invalid keyword arguments (spec: arg1 default1 arg2 default2)
|
||||
example 1 2 test # => test: invalid keyword arguments (spec: arg1 default1 arg2 default2)
|
||||
Loading…
Add table
Add a link
Reference in a new issue