亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 6081 | 回復(fù): 14
打印 上一主題 下一主題

問個(gè)關(guān)于常量訪問的問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-12-28 18:45 |只看該作者 |倒序?yàn)g覽
  1. #!/usr/bin/perl

  2. use strict;
  3. use warnings;
  4. use constant TUBE => 0;
  5. use constant ELBO => 1;

  6. my %com = (
  7. "gtype" => "TUBE",
  8. );
  9. print TUBE."\n";
  10. #想要通過$com{gtype}返回的字符串所代表的常量值控制輸出,(比如說常量TUBE的值)怎么實(shí)現(xiàn)呢?
  11. print "$com{gtype}\n" if $com{gtype};


復(fù)制代碼

[ 本帖最后由 sotol 于 2007-12-28 18:52 編輯 ]

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2007-12-29 09:55 |只看該作者
對(duì)于常量訪問,是不需要加雙引號(hào)的.

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
3 [報(bào)告]
發(fā)表于 2007-12-29 10:15 |只看該作者
又見符號(hào)引用。
死也不告訴你們?cè)趺醋觥=心悴挥?hash。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2007-12-29 11:37 |只看該作者

回復(fù) #3 flw 的帖子

想用PERL構(gòu)建一個(gè)化工管道元件的基礎(chǔ)類,然后用它實(shí)現(xiàn)化工三維設(shè)計(jì)數(shù)據(jù)庫的操作
困難重重哈

我問這個(gè)問題的背景是:
化工管件的端面數(shù)是不一樣的,比如書ELBO有三個(gè),而TEE有兩個(gè)
想根據(jù)管件的類型來動(dòng)態(tài)生成三個(gè)或者兩個(gè)端面,具體類型在CLASS C才能確定的
第一層:CLASS A 管件基本描述類, CLASS B 管件端面信息類;
第二層:CLASS C 具體管件的某個(gè)管件(繼承A ,use B)。

PS:有點(diǎn)C++的基礎(chǔ),第一次使用PERL實(shí)現(xiàn)面向?qū)ο缶幊蹋晕⒖戳丝戳艘幌隆禤ERL語言編程》。

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
5 [報(bào)告]
發(fā)表于 2007-12-29 12:00 |只看該作者
那好,我來問你,如果是 C++,你該怎么做?

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2007-12-29 13:12 |只看該作者

回復(fù) #5 flw 的帖子

按照我問到的那種思路方式,用C++也是實(shí)現(xiàn)不了的,明白你的意思是叫我用hash代替constant使用。PERL實(shí)現(xiàn)面向?qū)ο蟾愕妙^都有點(diǎn)暈了,可能是沒有充分明白它的思想吧。要找點(diǎn)比較典型一點(diǎn)的代碼參考一下才行。謝謝版主!

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-04-19 12:47 |只看該作者
樓主的問題解決沒?

我最近也遇到跟樓主一樣的問題,就是需要根據(jù)一個(gè)外部傳入的變量來訪問一個(gè)常量,該變量的值是未知的,是其中一個(gè)常量名。

在樓主的代碼中,%com 應(yīng)該是不存在的,只是一個(gè)示例,目的也是通過一個(gè)變量來訪問常量。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2010-04-19 13:18 |只看該作者
本帖最后由 hp_truth 于 2010-04-19 13:53 編輯

回復(fù) 1# sotol


試試這樣:


#!/usr/local/bin/perl5

use warnings;
use strict;

use constant TUBE => 0;
use constant ELBO => 1;

my %com = ("gtype" => "TUBE");

no strict "refs";
print $com{gtype}(). "\n" if $com{gtype};



In the current implementation, scalar constants are actually inlinable subroutines. As of version 5.004 of Perl, the appropriate scalar constant is inserted directly in place of some subroutine calls, thereby saving the overhead of a subroutine call.

Constants are not private to the lexical scope in which they occur. Instead, they are simply argumentless subroutines in the symbol table of the package issuing the declaration.

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2010-04-19 13:37 |只看該作者
回復(fù)  sotol


試試這樣:


#!/usr/local/bin/perl5

use warnings;
use strict;

use constan ...
hp_truth 發(fā)表于 2010-04-19 13:18



   
謝謝,這樣的確可以,有沒有其他更好的辦法可以“用變量的值來訪問常量”?

論壇徽章:
78
雙子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06獅子座
日期:2013-10-18 13:40:31雙子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56處女座
日期:2013-10-24 17:15:30雙子座
日期:2013-10-25 13:49:39午馬
日期:2013-10-28 15:02:15
10 [報(bào)告]
發(fā)表于 2010-04-19 13:51 |只看該作者
  1. use constant TUBE => 1;

  2. my %com = (
  3. "gtype" => TUBE
  4. );

  5. print TUBE."\n";
  6. print "$com{gtype}\n";
復(fù)制代碼
  1. 1
  2. 1
復(fù)制代碼
二樓說的不用引號(hào)不就可以了嗎?
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP