PLT 板


LINE

看板 PLT  RSS
※ 引述《godfat (godfat 真常)》之铭言: : ※ 引述《mystea (mystea)》之铭言: : : 大家好, 我有一个粗浅的关於scope的问题想请教大家. : : 写程式的时候, local variable的scope都仅限於自己这个函数, : : 如果想用子函式去碰就非得pass by reference传进去才行. : 其实这不见得是一个好主意,因为我们写程式本来就要尽量减少 : dependency, side-effect, 等等东西。不是说要去碰就非得 : call by reference, 而是除非必要,否则尽量不要这麽做。 请问您所提的减少dependency是不是指希望有generality以增加重复使用的机会? 但其实有时候call by reference并不一定减少了generality. 比方说我想写一个 fit line的程式, 输入值是两个平面上的点, 输出值是直线方程式的a和b; 因为输出值 超过一个, 所以不用pass by reference不行, 但是既然目标很明确, 两个平面上的点 的资料型态并不是母程式独有的, 那重复利用性应该也不差才是阿... : : 我初学scope时, 老师跟我说这样主要的目的是为了名称可以重复使用. : 这个说法我是觉得太随便了,名称重复使用是很细微的事了。 : 我想你应该已经知道 local variable 的一些好处, : 所以一些对於 local variable 的说明我就删去了.... : (刚刚不小心打了不少,才注意到标题的问题, : 好像不是问 local variable 本身....) : 首先请考虑递回的状况,你要怎麽单单使用 namespace 指定 variable? : 然而,local scope 存在的时候,那个 local variable 又真的是存在? : 当你在说 son::i 时,son 被唤起了吗?没有的话这个 son::i 是指谁? : 其实写程式是要尽量减少 side-effect, 不能避免时才使用 side-effect, : 这是为了降低程式复杂度与相依性,使得程式可重复利用性更高。 : 如此一来,直接去接触其他某个 local scope 下的 variable, : 是和这种目标相违背的。在 functional language 中,这种限制会更严格。 其实我在打第一段的回应时有想到: 要是在子程序里呼叫main:i的话, generality 确实是有问题. 因为这样子的话这个子程序只能用在有i的main里面, 而且i的意义只能 有一个. 但是如果我的子程序是在动态宣告母程序里的local variable的话, 好像就不会违反 generality了. 比方说我写一个fit line的程式, 输入是两个点的座标, 输出则是两 个叫做fitline_a, fitline_b的 母程序里的 local variable, 像这样的话重复利用性 好像还要更好呢! (因为使用之前不需要特别为他宣告两个变数) --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 76.170.235.113







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP