⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000000.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
declare&nbsp;their&nbsp;size&nbsp;at&nbsp;compile-time&nbsp;as&nbsp;in,&nbsp;say,&nbsp;Pascal.&nbsp;You&nbsp;don't&nbsp;have&nbsp;to&nbsp;<BR>&nbsp;allocate&nbsp;memory&nbsp;for&nbsp;them&nbsp;as&nbsp;in&nbsp;C,&nbsp;C++,&nbsp;or&nbsp;Java.&nbsp;They're&nbsp;objects,&nbsp;so&nbsp;you&nbsp;<BR>&nbsp;don't&nbsp;have&nbsp;to&nbsp;keep&nbsp;up&nbsp;with&nbsp;their&nbsp;length;&nbsp;it's&nbsp;virtually&nbsp;impossible&nbsp;to&nbsp;&nbsp;<BR>&quot;walk&nbsp;off&nbsp;the&nbsp;end&quot;&nbsp;of&nbsp;an&nbsp;array&nbsp;as&nbsp;you&nbsp;might&nbsp;in&nbsp;C.&nbsp;Want&nbsp;to&nbsp;process&nbsp;them&nbsp;&nbsp;<BR>by&nbsp;index?&nbsp;By&nbsp;element?&nbsp;Process&nbsp;them&nbsp;backwards?&nbsp;Print&nbsp;them?&nbsp;There&nbsp;are&nbsp;&nbsp;<BR>methods&nbsp;for&nbsp;all&nbsp;these.&nbsp;Want&nbsp;to&nbsp;use&nbsp;an&nbsp;array&nbsp;as&nbsp;a&nbsp;set,&nbsp;a&nbsp;stack,&nbsp;or&nbsp;a&nbsp;&nbsp;<BR>queue?&nbsp;There&nbsp;are&nbsp;methods&nbsp;for&nbsp;these&nbsp;operations,&nbsp;too.&nbsp;Want&nbsp;to&nbsp;use&nbsp;an&nbsp;array&nbsp;<BR>&nbsp;as&nbsp;a&nbsp;lookup&nbsp;table?&nbsp;That's&nbsp;a&nbsp;trick&nbsp;question;&nbsp;you&nbsp;don't&nbsp;have&nbsp;to,&nbsp;since&nbsp;we&nbsp;<BR>&nbsp;have&nbsp;hashes&nbsp;for&nbsp;that.&nbsp;<BR>&nbsp;<BR>It's&nbsp;extensible.&nbsp;You&nbsp;can&nbsp;write&nbsp;external&nbsp;libraries&nbsp;in&nbsp;Ruby&nbsp;or&nbsp;in&nbsp;C.&nbsp;In&nbsp;&nbsp;<BR>addition,&nbsp;you&nbsp;can&nbsp;modify&nbsp;the&nbsp;existing&nbsp;classes&nbsp;and&nbsp;objects&nbsp;at&nbsp;will,&nbsp;on&nbsp;&nbsp;<BR>the&nbsp;fly.&nbsp;<BR>&nbsp;<BR>It&nbsp;encourages&nbsp;literate&nbsp;programming.&nbsp;You&nbsp;can&nbsp;embed&nbsp;comments&nbsp;in&nbsp;your&nbsp;&nbsp;<BR>code&nbsp;which&nbsp;the&nbsp;Ruby&nbsp;documentation&nbsp;tool&nbsp;can&nbsp;extract&nbsp;and&nbsp;manipulate.&nbsp;(Real&nbsp;<BR>&nbsp;fans&nbsp;of&nbsp;literate&nbsp;programming&nbsp;may&nbsp;think&nbsp;this&nbsp;is&nbsp;pretty&nbsp;rudimentary.)&nbsp;<BR>&nbsp;<BR>It&nbsp;uses&nbsp;punctuation&nbsp;and&nbsp;capitalization&nbsp;creatively.&nbsp;A&nbsp;method&nbsp;returning&nbsp;&nbsp;<BR>a&nbsp;Boolean&nbsp;result&nbsp;(though&nbsp;Ruby&nbsp;doesn't&nbsp;call&nbsp;it&nbsp;that)&nbsp;is&nbsp;typically&nbsp;ended&nbsp;&nbsp;<BR>with&nbsp;a&nbsp;question&nbsp;mark,&nbsp;and&nbsp;the&nbsp;more&nbsp;destructive,&nbsp;data-modifying&nbsp;methods&nbsp;&nbsp;<BR>are&nbsp;named&nbsp;with&nbsp;an&nbsp;exclamation&nbsp;point.&nbsp;Simple,&nbsp;informative,&nbsp;and&nbsp;intuitive.&nbsp;<BR>&nbsp;All&nbsp;constants,&nbsp;including&nbsp;class&nbsp;names,&nbsp;start&nbsp;with&nbsp;capital&nbsp;letters.&nbsp;All&nbsp;&nbsp;<BR>object&nbsp;attributes&nbsp;start&nbsp;with&nbsp;an&nbsp;@&nbsp;sign.&nbsp;This&nbsp;has&nbsp;the&nbsp;pragmatism&nbsp;of&nbsp;the&nbsp;&nbsp;<BR>old&nbsp;&quot;Hungarian&nbsp;notation&quot;&nbsp;without&nbsp;the&nbsp;eye-jarring&nbsp;ugliness.&nbsp;<BR>&nbsp;<BR>Reserved&nbsp;words&nbsp;aren't.&nbsp;It's&nbsp;perfectly&nbsp;allowable&nbsp;to&nbsp;use&nbsp;an&nbsp;identifier&nbsp;&nbsp;<BR>that&nbsp;is&nbsp;a&nbsp;so-called&nbsp;&quot;reserved&nbsp;word&quot;&nbsp;as&nbsp;long&nbsp;as&nbsp;the&nbsp;parser&nbsp;doesn't&nbsp;&nbsp;<BR>perceive&nbsp;an&nbsp;amibiguity.&nbsp;This&nbsp;is&nbsp;a&nbsp;breath&nbsp;of&nbsp;fresh&nbsp;air.&nbsp;<BR>&nbsp;<BR>It&nbsp;allows&nbsp;iterators.&nbsp;Among&nbsp;other&nbsp;things,&nbsp;this&nbsp;makes&nbsp;it&nbsp;possible&nbsp;to&nbsp;&nbsp;<BR>pass&nbsp;blocks&nbsp;of&nbsp;code&nbsp;to&nbsp;your&nbsp;objects&nbsp;in&nbsp;such&nbsp;a&nbsp;way&nbsp;that&nbsp;the&nbsp;block&nbsp;is&nbsp;&nbsp;<BR>called&nbsp;for&nbsp;each&nbsp;item&nbsp;in&nbsp;the&nbsp;array,&nbsp;list,&nbsp;tree,&nbsp;or&nbsp;whatever.&nbsp;This&nbsp;is&nbsp;a&nbsp;&nbsp;<BR>powerful&nbsp;technique&nbsp;that&nbsp;is&nbsp;worth&nbsp;exploring&nbsp;at&nbsp;great&nbsp;length.&nbsp;<BR>&nbsp;<BR>It&nbsp;has&nbsp;safety&nbsp;and&nbsp;security&nbsp;features.&nbsp;Ruby&nbsp;borrows&nbsp;Perl's&nbsp;concept&nbsp;of&nbsp;&nbsp;<BR>tainting&nbsp;and&nbsp;allows&nbsp;different&nbsp;levels&nbsp;of&nbsp;control&nbsp;(levels&nbsp;of&nbsp;paranoia?)&nbsp;by&nbsp;<BR>&nbsp;means&nbsp;of&nbsp;the&nbsp;$SAFE&nbsp;variable.&nbsp;This&nbsp;is&nbsp;especially&nbsp;good&nbsp;for&nbsp;CGI&nbsp;programs&nbsp;&nbsp;<BR>that&nbsp;people&nbsp;will&nbsp;try&nbsp;to&nbsp;subvert&nbsp;in&nbsp;order&nbsp;to&nbsp;crack&nbsp;the&nbsp;web&nbsp;server.&nbsp;<BR>&nbsp;<BR>It&nbsp;has&nbsp;no&nbsp;pointers.&nbsp;Like&nbsp;Java,&nbsp;and&nbsp;with&nbsp;a&nbsp;grudging&nbsp;nod&nbsp;to&nbsp;C++,&nbsp;Ruby&nbsp;does&nbsp;<BR>&nbsp;not&nbsp;have&nbsp;the&nbsp;concept&nbsp;of&nbsp;a&nbsp;pointer;&nbsp;there&nbsp;is&nbsp;no&nbsp;indirection,&nbsp;no&nbsp;&nbsp;<BR>pointer&nbsp;arithmetic,&nbsp;and&nbsp;none&nbsp;of&nbsp;the&nbsp;headaches&nbsp;that&nbsp;go&nbsp;with&nbsp;the&nbsp;syntax&nbsp;&nbsp;<BR>and&nbsp;the&nbsp;debugging&nbsp;of&nbsp;pointers.&nbsp;Of&nbsp;course,&nbsp;this&nbsp;means&nbsp;that&nbsp;real&nbsp;&nbsp;<BR>nuts-and-bolts&nbsp;system&nbsp;programming&nbsp;is&nbsp;more&nbsp;difficult,&nbsp;such&nbsp;as&nbsp;accessing&nbsp;a&nbsp;<BR>&nbsp;control-status&nbsp;register&nbsp;for&nbsp;a&nbsp;device;&nbsp;but&nbsp;that&nbsp;can&nbsp;always&nbsp;be&nbsp;done&nbsp;in&nbsp;&nbsp;<BR>a&nbsp;C&nbsp;library.&nbsp;(Just&nbsp;as&nbsp;C&nbsp;programmers&nbsp;drop&nbsp;into&nbsp;assembly&nbsp;when&nbsp;necessary,&nbsp;&nbsp;<BR>Ruby&nbsp;programmers&nbsp;drop&nbsp;into&nbsp;C&nbsp;when&nbsp;they&nbsp;have&nbsp;to!)&nbsp;<BR>&nbsp;<BR>It&nbsp;pays&nbsp;attention&nbsp;to&nbsp;detail.&nbsp;Synonyms&nbsp;and&nbsp;aliases&nbsp;abound.&nbsp;You&nbsp;can't&nbsp;&nbsp;<BR>remember&nbsp;whether&nbsp;to&nbsp;say&nbsp;size&nbsp;or&nbsp;length&nbsp;for&nbsp;a&nbsp;string&nbsp;or&nbsp;an&nbsp;array?&nbsp;&nbsp;<BR>Either&nbsp;one&nbsp;works.&nbsp;For&nbsp;ranges,&nbsp;is&nbsp;it&nbsp;begin&nbsp;and&nbsp;end,&nbsp;or&nbsp;first&nbsp;and&nbsp;last?&nbsp;&nbsp;<BR>Take&nbsp;your&nbsp;pick.&nbsp;You&nbsp;spell&nbsp;it&nbsp;indices,&nbsp;and&nbsp;your&nbsp;evil&nbsp;twin&nbsp;spells&nbsp;it&nbsp;&nbsp;<BR>indexes?&nbsp;They&nbsp;both&nbsp;work.&nbsp;<BR>&nbsp;<BR>It&nbsp;has&nbsp;a&nbsp;flexible&nbsp;syntax.&nbsp;Parentheses&nbsp;in&nbsp;method&nbsp;calls&nbsp;can&nbsp;usually&nbsp;be&nbsp;&nbsp;<BR>omitted,&nbsp;as&nbsp;can&nbsp;commas&nbsp;between&nbsp;parameters.&nbsp;Perl-style&nbsp;quotes&nbsp;allow&nbsp;&nbsp;<BR>arrays&nbsp;of&nbsp;strings&nbsp;without&nbsp;all&nbsp;the&nbsp;quotation&nbsp;marks&nbsp;and&nbsp;commas.&nbsp;The&nbsp;return&nbsp;<BR>&nbsp;keyword&nbsp;can&nbsp;be&nbsp;omitted.&nbsp;<BR>&nbsp;<BR>It&nbsp;has&nbsp;a&nbsp;rich&nbsp;set&nbsp;of&nbsp;libraries.&nbsp;There&nbsp;is&nbsp;support&nbsp;for&nbsp;threads,&nbsp;sockets,&nbsp;&nbsp;<BR>limited&nbsp;object&nbsp;persistence,&nbsp;CGI&nbsp;programs,&nbsp;server-side&nbsp;executables,&nbsp;DB&nbsp;&nbsp;<BR>files,&nbsp;and&nbsp;more.&nbsp;There&nbsp;is&nbsp;some&nbsp;support&nbsp;for&nbsp;Tk,&nbsp;with&nbsp;more&nbsp;on&nbsp;the&nbsp;way.&nbsp;<BR>&nbsp;<BR>It&nbsp;has&nbsp;a&nbsp;debugger.&nbsp;In&nbsp;a&nbsp;perfect&nbsp;world,&nbsp;we&nbsp;wouldn't&nbsp;need&nbsp;debuggers.&nbsp;&nbsp;<BR>This&nbsp;is&nbsp;not&nbsp;a&nbsp;perfect&nbsp;world.&nbsp;<BR>&nbsp;<BR>It&nbsp;can&nbsp;be&nbsp;used&nbsp;interactively.&nbsp;Conceivably&nbsp;it&nbsp;could&nbsp;be&nbsp;used&nbsp;as&nbsp;a&nbsp;sort&nbsp;&nbsp;<BR>of&nbsp;&quot;Kornshell&nbsp;squared.&quot;&nbsp;<BR>&nbsp;<BR>It&nbsp;is&nbsp;concise.&nbsp;There&nbsp;are&nbsp;no&nbsp;superfluous&nbsp;keywords&nbsp;such&nbsp;as&nbsp;Pascal's&nbsp;begin,&nbsp;<BR>&nbsp;then&nbsp;after&nbsp;if,&nbsp;do&nbsp;after&nbsp;while.&nbsp;Variables&nbsp;need&nbsp;not&nbsp;be&nbsp;declared,&nbsp;as&nbsp;&nbsp;<BR>they&nbsp;do&nbsp;not&nbsp;have&nbsp;types.&nbsp;Return&nbsp;types&nbsp;need&nbsp;not&nbsp;be&nbsp;specified&nbsp;for&nbsp;methods.&nbsp;<BR>&nbsp;The&nbsp;return&nbsp;keyword&nbsp;is&nbsp;not&nbsp;needed;&nbsp;a&nbsp;method&nbsp;will&nbsp;return&nbsp;the&nbsp;last&nbsp;&nbsp;<BR>evaluated&nbsp;expression.&nbsp;On&nbsp;the&nbsp;other&nbsp;hand...&nbsp;it&nbsp;is&nbsp;not&nbsp;so&nbsp;cryptic&nbsp;as&nbsp;C&nbsp;&nbsp;<BR>or&nbsp;Perl.&nbsp;&nbsp;<BR>&nbsp;<BR>It&nbsp;is&nbsp;expression-oriented.&nbsp;You&nbsp;can&nbsp;easily&nbsp;say&nbsp;things&nbsp;like&nbsp;x&nbsp;=&nbsp;if&nbsp;a&lt;0&nbsp;&nbsp;<BR>then&nbsp;b&nbsp;else&nbsp;c.&nbsp;<BR>&nbsp;<BR>It&nbsp;is&nbsp;laced&nbsp;with&nbsp;syntax&nbsp;sugar.&nbsp;(To&nbsp;paraphrase&nbsp;Mary&nbsp;Poppins:&nbsp;A&nbsp;spoonful&nbsp;&nbsp;<BR>of&nbsp;syntax&nbsp;sugar&nbsp;helps&nbsp;the&nbsp;semantic&nbsp;medicine&nbsp;go&nbsp;down.)&nbsp;If&nbsp;you&nbsp;want&nbsp;to&nbsp;&nbsp;<BR>iterate&nbsp;over&nbsp;an&nbsp;array&nbsp;x&nbsp;by&nbsp;saying&nbsp;for&nbsp;a&nbsp;in&nbsp;x,&nbsp;you&nbsp;can.&nbsp;If&nbsp;you&nbsp;want&nbsp;to&nbsp;&nbsp;<BR>say&nbsp;a&nbsp;+=&nbsp;b&nbsp;instead&nbsp;of&nbsp;a&nbsp;=&nbsp;a&nbsp;+&nbsp;b,&nbsp;you&nbsp;can.&nbsp;Most&nbsp;operators&nbsp;are&nbsp;really&nbsp;just&nbsp;<BR>&nbsp;methods&nbsp;with&nbsp;short,&nbsp;intuitive&nbsp;names&nbsp;and&nbsp;a&nbsp;more&nbsp;convenient&nbsp;syntax.&nbsp;<BR>&nbsp;<BR>It&nbsp;has&nbsp;operator&nbsp;overloading.&nbsp;If&nbsp;I&nbsp;am&nbsp;not&nbsp;mistaken,&nbsp;this&nbsp;originated&nbsp;&nbsp;<BR>long&nbsp;ago&nbsp;in&nbsp;SNOBOL,&nbsp;but&nbsp;was&nbsp;popularized&nbsp;more&nbsp;recently&nbsp;by&nbsp;C++.&nbsp;It&nbsp;can&nbsp;&nbsp;<BR>be&nbsp;overdone&nbsp;or&nbsp;misused,&nbsp;but&nbsp;it&nbsp;can&nbsp;be&nbsp;nice&nbsp;to&nbsp;have.&nbsp;Additionally,&nbsp;Ruby&nbsp;&nbsp;<BR>defines&nbsp;the&nbsp;assignment&nbsp;version&nbsp;of&nbsp;an&nbsp;operator&nbsp;automagically;&nbsp;if&nbsp;you&nbsp;&nbsp;<BR>define&nbsp;+,&nbsp;you&nbsp;get&nbsp;+=&nbsp;as&nbsp;a&nbsp;bonus.&nbsp;<BR>&nbsp;<BR>It&nbsp;has&nbsp;infinite-precision&nbsp;integer&nbsp;arithmetic.&nbsp;Who&nbsp;cares&nbsp;about&nbsp;short,&nbsp;&nbsp;<BR>int,&nbsp;long?&nbsp;Just&nbsp;use&nbsp;a&nbsp;Bignum.&nbsp;Admit&nbsp;it,&nbsp;you&nbsp;always&nbsp;wanted&nbsp;to&nbsp;find&nbsp;the&nbsp;&nbsp;<BR>factorial&nbsp;of&nbsp;365.&nbsp;Now&nbsp;you&nbsp;can.&nbsp;<BR>&nbsp;<BR>It&nbsp;has&nbsp;an&nbsp;exponentiation&nbsp;operator.&nbsp;In&nbsp;the&nbsp;old&nbsp;days,&nbsp;we&nbsp;used&nbsp;this&nbsp;in&nbsp;&nbsp;<BR>BASIC&nbsp;and&nbsp;FORTRAN.&nbsp;But&nbsp;then&nbsp;we&nbsp;learned&nbsp;Pascal&nbsp;and&nbsp;C,&nbsp;and&nbsp;learned&nbsp;how&nbsp;&nbsp;<BR>evil&nbsp;this&nbsp;operator&nbsp;was.&nbsp;(We&nbsp;were&nbsp;told&nbsp;we&nbsp;didn't&nbsp;even&nbsp;know&nbsp;how&nbsp;the&nbsp;&nbsp;<BR>evaluation&nbsp;was&nbsp;done&nbsp;--&nbsp;did&nbsp;it&nbsp;use&nbsp;logarithms?&nbsp;Iteration?&nbsp;How&nbsp;efficient&nbsp;&nbsp;<BR>was&nbsp;it?)&nbsp;But&nbsp;then,&nbsp;do&nbsp;we&nbsp;really&nbsp;care?&nbsp;If&nbsp;so,&nbsp;we&nbsp;can&nbsp;rewrite&nbsp;it&nbsp;&nbsp;<BR>ourselves.&nbsp;If&nbsp;not,&nbsp;Ruby&nbsp;has&nbsp;the&nbsp;good&nbsp;old&nbsp;**&nbsp;operator&nbsp;you&nbsp;loved&nbsp;as&nbsp;a&nbsp;&nbsp;<BR>child.&nbsp;Enjoy&nbsp;it.&nbsp;<BR>&nbsp;<BR>It&nbsp;has&nbsp;powerful&nbsp;string&nbsp;handling.&nbsp;If&nbsp;you&nbsp;want&nbsp;to&nbsp;search,&nbsp;substitute,&nbsp;&nbsp;<BR>justify,&nbsp;format,&nbsp;trim,&nbsp;delimit,&nbsp;interpose,&nbsp;or&nbsp;tokenize,&nbsp;you&nbsp;can&nbsp;probably&nbsp;<BR>&nbsp;use&nbsp;one&nbsp;of&nbsp;the&nbsp;built-in&nbsp;methods.&nbsp;If&nbsp;not,&nbsp;you&nbsp;can&nbsp;build&nbsp;on&nbsp;them&nbsp;to&nbsp;&nbsp;<BR>produce&nbsp;what&nbsp;you&nbsp;need.&nbsp;&nbsp;<BR>&nbsp;<BR>It&nbsp;has&nbsp;few&nbsp;exceptions&nbsp;to&nbsp;its&nbsp;rules.&nbsp;The&nbsp;syntax&nbsp;and&nbsp;semantics&nbsp;of&nbsp;Ruby&nbsp;are&nbsp;<BR>&nbsp;more&nbsp;self-consistent&nbsp;than&nbsp;most&nbsp;languages.&nbsp;Every&nbsp;language&nbsp;has&nbsp;oddities,&nbsp;<BR>&nbsp;and&nbsp;every&nbsp;rule&nbsp;has&nbsp;exceptions;&nbsp;but&nbsp;Ruby&nbsp;has&nbsp;fewer&nbsp;than&nbsp;you&nbsp;might&nbsp;&nbsp;<BR>expect.&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>&nbsp;&nbsp;桃花坞里桃花庵,桃花庵下桃花仙;桃花仙人种桃树,又摘桃花卖酒钱。&nbsp;<BR>&nbsp;&nbsp;酒醒只在花前坐,酒醉换来花下眠;半醒半醉日复日,花落花开年复年。&nbsp;<BR>&nbsp;&nbsp;但愿老死花酒间,不愿鞠躬车马前;车尘马足富者趣,酒盏花枝贫者缘。&nbsp;<BR>&nbsp;&nbsp;若将富贵比贫贱,一在平地一在天;若将贫贱比车马,他得驱驰我得闲。&nbsp;<BR>&nbsp;&nbsp;别人笑我忒疯癫,我笑他人看不穿;不见五陵豪杰墓,无花无酒锄做田。&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;202.204.7.234]&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -