• tcl脚本学习十一:proc应用 (带默认参数)


    lesson 11 : proc应用 (带默认参数)


    1.//使用过程的时候,不一定输入所有的参数值。过程的输入参数可以有默认值。默认值由
    {默认参数名 默认值}指定。如果调用过程时没有指定这些参数的值则会使用其默认值,
    否则使用输入值来替代默认值。在使用默认参数的时候要注意,如果默认参数之后还有
    非默认参数,则在调用此过程的时候,默认参数的值也要求输入,否则会出错。这是因
    为 Tcl 调用过程的时候是根据位置来匹配参数和输入值的
    2.如果参数列表中最后一个参数是 args 的话,则过程可以接收可变数目的输入参数。当调用过
    程时,除了指定参数以外的参数值都被 args 接收。如果参数列表中只有 args 一项,则 args 接
    收所有输入参数值

    example ① :调用函数的返回值的用法

    proc Test { a {b 7} {str "Hello world"} } {
    puts "$str"
    return [expr $a * $b ]
    }

    puts "[Test 7 7 ] "


    example ② :

    proc test {args} {
    puts "input values are : $args"
    }

    test my name is zhouli

    result : input values are : my name is zhouli
    //验证了开头第二点说的

    example ③ :

    proc config_sys {args} {
    array set inArr $args
    parray inArr
    }

    config_sys -sysName "HUB100" -ipAddr 192.168.10.1 -date 2003-11-21 -time 21:03:45


    result :
    inArr(-date) = 2003-11-21
    inArr(-ipAddr) = 192.168.10.1
    inArr(-sysName) = HUB100
    inArr(-time) = 21:03:45

    //先放一放


    //进入本课正题!!咳咳

    proc example {first {second ""} args} {
    if {$second == ""} {
    puts "There is only one argument and it is: $first";
    return 1;
    } else {
    if {$args == ""} {
    puts "There are two arguments - $first and $second";
    return 2;
    } else {
    puts "There are many arguments - $first and $second and $args";
    return "many";
    }
    }
    }

    set count1 [example ONE]
    set count2 [example ONE TWO]
    set count3 [example ONE TWO THREE ]
    set count4 [example ONE TWO THREE FOUR]
    //例子结合了很多简单用法,不做解释

  • 相关阅读:
    正则表达式、常用的匹配总结
    已知IP地址,如何计算其子网掩码,默认网关地址,网络地址等。
    暑假作业日总结
    暑假作业日总结
    暑假作业日总结
    暑假作业日总结
    暑假作业日总结
    暑假作业日总结
    暑假作业日总结
    暑假作业日总结
  • 原文地址:https://www.cnblogs.com/gold-life/p/5731140.html
Copyright © 2020-2023  润新知