cba什么意思| 中医学专业学什么| 西南属什么五行| 作奸犯科是什么意思| 身体水肿是什么原因引起的| 梦见枕头是什么意思| 秋分是什么意思| 捷字五行属什么| 丁香花长什么样| 地贫是什么意思| 去香港澳门旅游需要准备什么| 感冒咳嗽挂号挂什么科| 茴香豆是什么豆| 阴湿是什么病| 什么叫同工同酬| 秦二世叫什么名字| 什么是阴蒂| 综合基础知识考什么| 自己做生意叫什么职业| 虎皮羊质是指什么生肖| 1989年五行属什么| 凯格尔运动是什么| 熟石灰是什么| 京东什么时候优惠最大| 均质是什么意思| 总胆固醇高是什么意思| 阴火是什么意思| 泪河高度说明什么| 吃什么长头发又密又多| 子宫内膜异位症有什么症状| 梦见老鼠是什么征兆| 风生水起是什么生肖| 喝石斛水有什么禁忌| BS是什么意思啊| 放疗起什么作用| 杂合变异是什么意思| 什么的北京城| 山穷水尽的尽是什么意思| 月经量极少几乎没有是什么原因| 毛囊炎是什么症状图片| 长寿面什么时候吃| 差强人意什么意思| 膝盖有积液是什么症状| 梦到吃屎是什么意思| 七月六号是什么星座| 蚂蝗长什么样| 怕热的人是什么原因| 中间细胞百分比偏高是什么意思| 爱新觉罗是什么意思| 口是心非是什么意思| 脚有点浮肿是什么原因| 牛油是什么油| 本命年有什么说法| 刘邦为什么怕吕后| 教师节该送什么礼物| 卵巢多囊是什么意思| 宝路华手表什么档次| 喊6个1是什么意思| mr是什么| 牛顿三大定律是什么| 佳什么意思| 1999年属兔的是什么命| 人为什么会困| 抽筋是什么原因引起的| 区级以上医院是什么意思| 宫颈潴留性囊肿是什么| 火车票改签是什么意思| 晨勃是什么意思| 什么叫射线| 高密度脂蛋白低是什么原因| 克加寸念什么| 头皮问题挂什么科| 5月19号是什么星座| 海关锁是什么意思| 肝有钙化灶是什么意思| 体检前需要注意什么| 出气臭是什么原因| 例假提前半个月是什么原因造成的| 唯女子与小人难养也是什么意思| 什么的列车| 高血压吃什么中药| 鱼缸摆放什么位置最佳| 丘疹性荨麻疹用什么药| 景泰蓝是什么地方的特种工艺| 30年婚姻叫什么婚| 一个草字头一个氏念什么| 妈妈是什么| 本田的高端品牌是什么| 乳清粉是什么| 为什么拉屎会出血| 什么的白桦| 虾不能和什么同吃| 焦虑症吃什么好| 奀是什么意思| 贲门松弛吃什么药| 3加2是什么意思| 什么的小莲蓬| 吃什么去湿气最快| 嘴唇紫色是什么原因| 隔离霜和粉底液有什么区别| 不可思议的意思是什么| 便秘吃什么药效果好| 恐龙为什么灭绝| 抵抗力差是什么原因| 玮是什么意思| 秋天吃什么| 经血是什么血| slow什么意思| 退休工资什么时候补发| 香水edp什么意思| 载脂蛋白b偏高是什么意思| 跖疣去医院挂什么科室| 血压低说明什么| 耻骨疼是什么原因| 子宫纵隔什么意思| 什么动物不怕热| 小腿疼痛什么原因引起的| 润滑油是干什么用的| 什么是眩晕症| 梦见蛇代表什么| 林冲的绰号是什么| 老鼠长什么样| 东坡肉是什么菜系| 脚背肿是什么原因| 什么的走| 九月初九是什么节日| 开车撞死猫有什么预兆| 梦见两条大蟒蛇是什么征兆| 狐假虎威是什么意思| 一直想大便是什么原因| 吃什么治肝病| 超七水晶是什么| 蚊子的天敌是什么| 爸爸的爸爸叫什么儿歌| 四个木是什么字| 小孩办身份证需要什么材料| 脆肉鲩是什么鱼| 缓释片是什么意思| 腿抖是什么病的预兆| 吃什么能快速降血压| 道场是什么意思| 感冒吃什么药好得快| 东莞五行属什么| 玛丽珍鞋是什么意思| 胃火吃什么食物好| 装孙子是什么意思| 吃什么油最健康排行榜| 中暑吃什么好| 白案是什么意思| 什么原因引起静脉曲张| 间质瘤是什么病| 尿不尽是什么症状| 仲夏是什么意思| 甲辰是什么意思| 格桑花是什么花| 尿道炎有什么症状| 乳房结节是什么原因引起的| 粉色药片是什么药| 辣木籽有什么功效| 双肺散在纤维灶是什么意思| 躯体症状是什么| 摩羯是什么| 鸡翅木是什么木头| 甲鱼和什么食物相克| 委屈是什么意思| 暖巢早衰是什么原因| l表示什么单位| 狗狗怀孕吃什么| ige高是什么意思| 五行白色属什么| 月经量太少是什么原因引起的| 昕五行属什么| 下下签是什么意思| 补肾气吃什么药| 倒卖是什么意思| 被什么虫子咬了会刺痛| 缺二氧化碳是什么症状| 今年是什么属相| 影子代表什么生肖| 宝宝大便发白是什么原因| 但爱鲈鱼美的但是什么意思| 头孢和什么不能一起吃| 农历十月份是什么星座| 两小无猜是什么生肖| 高锰酸钾什么颜色| 边沿是什么意思| 坐月子吃什么| 四月二号是什么星座| 炮烙之刑是什么意思| 验孕棒什么时候测最准确| 天麻与什么煲汤最好| 反式脂肪是什么意思| 吃什么降胆固醇| 洗衣机不排水是什么原因| 胃息肉是什么原因造成的| 耳石症是什么原因| 牛有几个胃分别叫什么| 为什么耳朵会痛| 浪琴军旗什么档次| 带下病是什么病| 7月13日什么星座| 蛞蝓是什么| tsh代表什么| 黑白双煞是什么意思| 苍鹰是什么意思| 黄芪什么功效| 晚上八点是什么时辰| 做梦梦见下大雨是什么意思| 海洋中最大的动物是什么| 聚乙二醇400是什么| 大豆和黄豆有什么区别| 汕是什么意思| 胆囊结石不能吃什么| 生姜什么时候种植最合适| 血脂高有什么症状表现| 放屁多是什么原因呢| lca是什么意思| 珩五行属什么| 日出扶桑是什么意思| 矢量图是什么格式| 手足口病咳嗽吃什么药| 青岛有什么玩的| 小暑是什么意思啊| 三伏天喝什么汤最好| 拉屎为什么是黑色的| 解除是什么意思| 缺蛋白质吃什么补得快| 梦见自己和别人结婚是什么意思| 天性使然什么意思| 胸疼是什么原因| 舌苔红是什么原因| 4月22日什么星座| pretty是什么意思| 周天是什么意思| 尿结石是什么症状| 查血清能查出什么病| 县委办公室主任是什么级别| 蛇喜欢吃什么| 棉花糖是什么做的| 竹叶青是什么茶| 公关是干什么的| 头痛到医院挂什么科| 转头头晕是什么原因| 凌晨2点是什么时辰| 黄历是什么意思| 为什么来月经肚子疼| 梦见棺材是什么意思| 鸡拉白色稀粪吃什么药| 什么工作赚钱最快| 5月27日什么星座| 续弦是什么意思| egfr医学上是什么意思| 什么原因导致胎停| 消融术是什么手术| 刀子嘴豆腐心什么意思| 与君共勉是什么意思| 属虎的生什么属相的宝宝好| 关门弟子是什么意思| 一什么虫子| 腋下有异味是什么原因导致的| 油菜花什么时候开| 灵芝对身体有什么好处| 少女是什么意思| 宫颈多发囊肿是什么意思| 百度Jump to content

女性适合喝什么茶

From Wikipedia, the free encyclopedia
百度 袁东明说。

In computer programming, an assignment statement sets and/or re-sets the value stored in the storage location(s) denoted by a variable name; in other words, it copies a value into the variable. In most imperative programming languages, the assignment statement (or expression) is a fundamental construct.

Today, the most commonly used notation for this operation is x = expr (originally Superplan 1949–51, popularized by Fortran 1957 and C). The second most commonly used notation is[1] x := expr (originally ALGOL 1958, popularised by Pascal).[2] Many other notations are also in use. In some languages, the symbol used is regarded as an operator (meaning that the assignment statement as a whole returns a value). Other languages define assignment as a statement (meaning that it cannot be used in an expression).

Assignments typically allow a variable to hold different values at different times during its life-span and scope. However, some languages (primarily strictly functional languages) do not allow that kind of "destructive" reassignment, as it might imply changes of non-local state. The purpose is to enforce referential transparency, i.e. functions that do not depend on the state of some variable(s), but produce the same results for a given set of parametric inputs at any point in time. Modern programs in other languages also often use similar strategies, although less strict, and only in certain parts, in order to reduce complexity, normally in conjunction with complementing methodologies such as data structuring, structured programming and object orientation.

Semantics

[edit]

An assignment operation is a process in imperative programming in which different values are associated with a particular variable name as time passes.[1] The program, in such model, operates by changing its state using successive assignment statements.[2][3] Primitives of imperative programming languages rely on assignment to do iteration.[4] At the lowest level, assignment is implemented using machine operations such as MOVE or STORE.[2][4]

Variables are containers for values. It is possible to put a value into a variable and later replace it with a new one. An assignment operation modifies the current state of the executing program.[3] Consequently, assignment is dependent on the concept of variables. In an assignment:

  • The expression is evaluated in the current state of the program.
  • The variable is assigned the computed value, replacing the prior value of that variable.

Example: Assuming that a is a numeric variable, the assignment a := 2*a means that the content of the variable a is doubled after the execution of the statement.

An example segment of C code:

int x = 10; 
float y;
x = 23;
y = 32.4f;

In this sample, the variable x is first declared as an int, and is then assigned the value of 10. Notice that the declaration and assignment occur in the same statement. In the second line, y is declared without an assignment. In the third line, x is reassigned the value of 23. Finally, y is assigned the value of 32.4.

For an assignment operation, it is necessary that the value of the expression is well-defined (it is a valid rvalue) and that the variable represents a modifiable entity (it is a valid modifiable (non-const) lvalue). In some languages, typically dynamic ones, it is not necessary to declare a variable prior to assigning it a value. In such languages, a variable is automatically declared the first time it is assigned to, with the scope it is declared in varying by language.

Single assignment

[edit]

Any assignment that changes an existing value (e.g. x := x + 1) is disallowed in purely functional languages.[4] In functional programming, assignment is discouraged in favor of single assignment, more commonly known as initialization. Single assignment is an example of name binding and differs from assignment as described in this article in that it can only be done once, usually when the variable is created; no subsequent reassignment is allowed.

An evaluation of an expression does not have a side effect if it does not change an observable state of the machine,[5] other than producing the result, and always produces same value for the same input.[4] Imperative assignment can introduce side effects while destroying and making the old value unavailable while substituting it with a new one,[6] and is referred to as destructive assignment for that reason in LISP and functional programming, similar to destructive updating.

Single assignment is the only form of assignment available in purely functional languages, such as Haskell, which do not have variables in the sense of imperative programming languages[4] but rather named constant values possibly of compound nature, with their elements progressively defined on-demand, for the lazy languages. Purely functional languages can provide an opportunity for computation to be performed in parallel, avoiding the von Neumann bottleneck of sequential one step at a time execution, since values are independent of each other.[7]

Impure functional languages provide both single assignment as well as true assignment (though true assignment is typically used with less frequency than in imperative programming languages). For example, in Scheme, both single assignment (with let) and true assignment (with set!) can be used on all variables, and specialized primitives are provided for destructive update inside lists, vectors, strings, etc. In OCaml, only single assignment is allowed for variables, via the let name = value syntax; however destructive update can be used on elements of arrays and strings with separate <- operator, as well as on fields of records and objects that have been explicitly declared mutable (meaning capable of being changed after their initial declaration) by the programmer.

Functional programming languages that use single assignment include Clojure (for data structures, not vars), Erlang (it accepts multiple assignment if the values are equal, in contrast to Haskell), F#, Haskell, JavaScript (for constants), Lava, OCaml, Oz (for dataflow variables, not cells), Racket (for some data structures like lists, not symbols), SASL, Scala (for vals), SISAL, Standard ML. Non-backtracking Prolog code can be considered explicit single-assignment, explicit in a sense that its (named) variables can be in explicitly unassigned state, or be set exactly once. In Haskell, by contrast, there can be no unassigned variables, and every variable can be thought of as being implicitly set, when it is created, to its value (or rather to a computational object that will produce its value on demand).

Value of an assignment

[edit]

In some programming languages, an assignment statement returns a value, while in others it does not.

In most expression-oriented programming languages (for example, C), the assignment statement returns the assigned value, allowing such idioms as x = y = a, in which the assignment statement y = a returns the value of a, which is then assigned to x. In a statement such as while ((ch = getchar()) != EOF) {}, the return value of a function is used to control a loop while assigning that same value to a variable.

In other programming languages, Scheme for example, the return value of an assignment is undefined and such idioms are invalid.

In Haskell,[8] there is no variable assignment; but operations similar to assignment (like assigning to a field of an array or a field of a mutable data structure) usually evaluate to the unit type, which is represented as (). This type has only one possible value, therefore containing no information. It is typically the type of an expression that is evaluated purely for its side effects.

Variant forms of assignment

[edit]

Certain use patterns are very common, and thus often have special syntax to support them. These are primarily syntactic sugar to reduce redundancy in the source code, but also assists readers of the code in understanding the programmer's intent, and provides the compiler with a clue to possible optimization.

Augmented assignment

[edit]

The case where the assigned value depends on a previous one is so common that many imperative languages, most notably C and the majority of its descendants, provide special operators called augmented assignment, like *=, so a = 2*a can instead be written as a *= 2.[3] Beyond syntactic sugar, this assists the task of the compiler by making clear that in-place modification of the variable a is possible.

Chained assignment

[edit]

A statement like w = x = y = z is called a chained assignment in which the value of z is assigned to multiple variables w, x, and y. Chained assignments are often used to initialize multiple variables, as in

a = b = c = d = f = 0

Not all programming languages support chained assignment. Chained assignments are equivalent to a sequence of assignments, but the evaluation strategy differs between languages. For simple chained assignments, like initializing multiple variables, the evaluation strategy does not matter, but if the targets (l-values) in the assignment are connected in some way, the evaluation strategy affects the result.

In some programming languages (C for example), chained assignments are supported because assignments are expressions, and have values. In this case chain assignment can be implemented by having a right-associative assignment, and assignments happen right-to-left. For example, i = arr[i] = f() is equivalent to arr[i] = f(); i = arr[i]. In C++ they are also available for values of class types by declaring the appropriate return type for the assignment operator.

In Python, assignment statements are not expressions and thus do not have a value. Instead, chained assignments are a series of statements with multiple targets for a single expression. The assignments are executed left-to-right so that i = arr[i] = f() evaluates the expression f(), then assigns the result to the leftmost target, i, and then assigns the same result to the next target, arr[i], using the new value of i.[9] This is essentially equivalent to tmp = f(); i = tmp; arr[i] = tmp though no actual variable is produced for the temporary value.

Parallel assignment

[edit]

Some programming languages, such as APL, Common Lisp,[10] Go,[11] JavaScript (since 1.7), Julia, PHP, Maple, Lua, occam 2,[12] Perl,[13] Python,[14] REBOL, Ruby,[15] and PowerShell allow several variables to be assigned in parallel, with syntax like:

a, b := 0, 1

which simultaneously assigns 0 to a and 1 to b. This is most often known as parallel assignment; it was introduced in CPL in 1963, under the name simultaneous assignment,[16] and is sometimes called multiple assignment, though this is confusing when used with "single assignment", as these are not opposites. If the right-hand side of the assignment is a single variable (e.g. an array or structure), the feature is called unpacking[17] or destructuring assignment:[18]

var list := {0, 1}
a, b := list

The list will be unpacked so that 0 is assigned to a and 1 to b. Furthermore,

a, b := b, a

swaps the values of a and b. In languages without parallel assignment, this would have to be written to use a temporary variable

var t := a
a := b
b := t

since a := b; b := a leaves both a and b with the original value of b.

Some languages, such as Go, F# and Python, combine parallel assignment, tuples, and automatic tuple unpacking to allow multiple return values from a single function, as in this Python example,

def f():
    return 1, 2
a, b = f()

while other languages, such as C# and Rust, shown here, require explicit tuple construction and deconstruction with parentheses:

// Valid C# or Rust syntax
(a, b) = (b, a);
// C# tuple return
(string, int) f() => ("foo", 1);
var (a, b) = f();
// Rust tuple return
let f = || ("foo", 1);
let (a, b) = f();

This provides an alternative to the use of output parameters for returning multiple values from a function. This dates to CLU (1974), and CLU helped popularize parallel assignment generally.

C# additionally allows generalized deconstruction assignment with implementation defined by the expression on the right-hand side, as the compiler searches for an appropriate instance or extension Deconstruct method on the expression, which must have output parameters for the variables being assigned to.[19] For example, one such method that would give the class it appears in the same behavior as the return value of f() above would be

void Deconstruct(out string a, out int b) { a = "foo"; b = 1; }

In C and C++, the comma operator is similar to parallel assignment in allowing multiple assignments to occur within a single statement, writing a = 1, b = 2 instead of a, b = 1, 2. This is primarily used in for loops, and is replaced by parallel assignment in other languages such as Go.[20] However, the above C++ code does not ensure perfect simultaneity, since the right side of the following code a = b, b = a+1 is evaluated after the left side. In languages such as Python, a, b = b, a+1 will assign the two variables concurrently, using the initial value of a to compute the new b.

Assignment versus equality

[edit]

The use of the equals sign = as an assignment operator has been frequently criticized, due to the conflict with equals as comparison for equality. This results both in confusion by novices in writing code, and confusion even by experienced programmers in reading code. The use of equals for assignment dates back to Heinz Rutishauser's language Superplan, designed from 1949 to 1951, and was particularly popularized by Fortran:

A notorious example for a bad idea was the choice of the equal sign to denote assignment. It goes back to Fortran in 1957[a] and has blindly been copied by armies of language designers. Why is it a bad idea? Because it overthrows a century old tradition to let “=” denote a comparison for equality, a predicate which is either true or false. But Fortran made it to mean assignment, the enforcing of equality. In this case, the operands are on unequal footing: The left operand (a variable) is to be made equal to the right operand (an expression). x = y does not mean the same thing as y = x.[21]

—?Niklaus Wirth, Good Ideas, Through the Looking Glass

Beginning programmers sometimes confuse assignment with the relational operator for equality, as "=" means equality in mathematics, and is used for assignment in many languages. But assignment alters the value of a variable, while equality testing tests whether two expressions have the same value.

In some languages, such as BASIC, a single equals sign ("=") is used for both the assignment operator and the equality relational operator, with context determining which is meant. Other languages use different symbols for the two operators.[22] For example:

  • In ALGOL and Pascal, the assignment operator is a colon and an equals sign (":=") while the equality operator is a single equals ("=").
  • In C, the assignment operator is a single equals sign ("=") while the equality operator is a pair of equals signs ("==").
  • In R, the assignment operator is basically <-, as in x <- value, but a single equals sign can be used in certain contexts.

The similarity in the two symbols can lead to errors if the programmer forgets which form ("=", "==", ":=") is appropriate, or mistypes "=" when "==" was intended. This is a common programming problem with languages such as C (including one famous attempt to backdoor the Linux kernel),[23] where the assignment operator also returns the value assigned (in the same way that a function returns a value), and can be validly nested inside expressions. If the intention was to compare two values in an if statement, for instance, an assignment is quite likely to return a value interpretable as Boolean true, in which case the then clause will be executed, leading the program to behave unexpectedly. Some language processors (such as gcc) can detect such situations, and warn the programmer of the potential error.[24][25]

Notation

[edit]

The two most common representations for the copying assignment are equals sign (=) and colon-equals (:=). Both forms may semantically denote either an assignment statement or an assignment operator (which also has a value), depending on language and/or usage.

variable = expression Fortran, PL/I, C (and descendants such as C++, Java, etc.), Bourne shell, Python, Go (assignment to pre-declared variables), R, PowerShell, Nim, etc.
variable := expression ALGOL (and derivatives), Simula, CPL, BCPL, Pascal[26] (and descendants such as Modula), Mary, PL/M, Ada, Smalltalk, Eiffel,[27][28] Oberon, Dylan,[29] Seed7, Python (an assignment expression),[30] Go (shorthand for declaring and defining a variable),[31] Io, AMPL, ML (assigning to a reference value),[32] AutoHotkey etc.

Other possibilities include a left arrow or a keyword, though there are other, rarer, variants:

variable << expression Magik
variable <- expression F#, OCaml, R, S
variable <<- expression R
assign("variable", expression) R
variableexpression APL,[33] Smalltalk, Atari 2600 BASIC Programming
variable =: expression J
LET variable = expression BASIC
let variable := expression XQuery
set variable to expression AppleScript
set variable = expression C shell
Set-Variable variable (expression) PowerShell
variable : expression Macsyma, Maxima, K
variable: expression Rebol
var variable expression mIRC scripting language
reference-variable :- reference-expression Simula

Mathematical pseudo code assignments are generally depicted with a left-arrow.

Some platforms put the expression on the left and the variable on the right:

MOVE expression TO variable COBOL
expressionvariable TI-BASIC, Casio BASIC
expression -> variable POP-2, BETA, R
put expression into variable HyperTalk, LiveCode
PUT expression IN variable ABC

Some expression-oriented languages, such as Lisp[34][35] and Tcl, uniformly use prefix (or postfix) syntax for all statements, including assignment.

(setf variable expression) Common Lisp
(set! variable expression) Scheme[36][37][38]
set variable expression Tcl
expression variable ! Forth

See also

[edit]

Notes

[edit]
  1. ^ Use of = predates Fortran, though it was popularized by Fortran.

References

[edit]
  1. ^ a b "2cs24 Declarative". www.csc.liv.ac.uk. Archived from the original on 24 April 2006. Retrieved 20 April 2018.
  2. ^ a b c "Imperative Programming". uah.edu. Archived from the original on 4 March 2016. Retrieved 20 April 2018.
  3. ^ a b c Ruediger-Marcus Flaig (2008). Bioinformatics programming in Python: a practical course for beginners. Wiley-VCH. pp. 98–99. ISBN 978-3-527-32094-3. Retrieved 25 December 2010.
  4. ^ a b c d e Crossing borders: Explore functional programming with Haskell Archived November 19, 2010, at the Wayback Machine, by Bruce Tate
  5. ^ Mitchell, John C. (2003). Concepts in programming languages. Cambridge University Press. p. 23. ISBN 978-0-521-78098-8. Retrieved 3 January 2011.
  6. ^ "Imperative Programming Languages (IPL)" (PDF). gwu.edu. Archived from the original (PDF) on 2025-08-06. Retrieved 20 April 2018.
  7. ^ John C. Mitchell (2003). Concepts in programming languages. Cambridge University Press. pp. 81–82. ISBN 978-0-521-78098-8. Retrieved 3 January 2011.
  8. ^ Hudak, Paul (2000). The Haskell School of Expression: Learning Functional Programming Through Multimedia. Cambridge: Cambridge University Press. ISBN 0-521-64408-9.
  9. ^ "7. Simple statements — Python 3.6.5 documentation". docs.python.org. Retrieved 20 April 2018.
  10. ^ "CLHS: Macro SETF, PSETF". Common Lisp Hyperspec. LispWorks. Retrieved 23 April 2019.
  11. ^ The Go Programming Language Specification: Assignments
  12. ^ INMOS Limited, ed. (1988). Occam 2 Reference Manual. New Jersey: Prentice Hall. ISBN 0-13-629312-3.
  13. ^ Wall, Larry; Christiansen, Tom; Schwartz, Randal C. (1996). Perl Programming Language (2 ed.). Cambridge: O′Reilly. ISBN 1-56592-149-6.
  14. ^ Lutz, Mark (2001). Python Programming Language (2 ed.). Sebastopol: O′Reilly. ISBN 0-596-00085-5.
  15. ^ Thomas, David; Hunt, Andrew (2001). Programming Ruby: The Pragmatic Programmer's Guide. Upper Saddle River: Addison Wesley. ISBN 0-201-71089-7.
  16. ^ D.W. Barron et al., "The main features of CPL", Computer Journal 6:2:140 (1963). full text (subscription)
  17. ^ "PEP 3132 -- Extended Iterable Unpacking". legacy.python.org. Retrieved 20 April 2018.
  18. ^ "Destructuring assignment". MDN Web Docs. Retrieved 20 April 2018.
  19. ^ "Deconstructing tuples and other types". Microsoft Docs. Microsoft. Retrieved 29 August 2019.
  20. ^ Effective Go: for, "Finally, Go has no comma operator and ++ and -- are statements not expressions. Thus if you want to run multiple variables in a for you should use parallel assignment (although that precludes ++ and --)."
  21. ^ Niklaus Wirth. "Good Ideas, Through the Looking Glass". CiteSeerX 10.1.1.88.8309.
  22. ^ "C++ Programming Language. Basics". ntu.edu.sg. 2025-08-06. Retrieved 2025-08-06.
  23. ^ Corbet (6 November 2003). "An attempt to backdoor the kernel". lwn.net. Retrieved 2025-08-06.
  24. ^ "Static Analyzer Options (Using the GNU Compiler Collection (GCC))". gcc.gnu.org. Retrieved 2025-08-06.
  25. ^ Deitel, Paul; Deitel, Harvey (2025-08-06). "C++ Control Statements, Part 2". Domyassignments. Retrieved 2025-08-06.
  26. ^ Moore, Lawrie (1980). Foundations of Programming with Pascal. New York: John Wiley & Sons. ISBN 0-470-26939-1.
  27. ^ Meyer, Bertrand (1992). Eiffel the Language. Hemel Hempstead: Prentice Hall International(UK). ISBN 0-13-247925-7.
  28. ^ Wiener, Richard (1996). An Object-Oriented Introduction to Computer Science Using Eiffel. Upper Saddle River, New Jersey: Prentice Hall. ISBN 0-13-183872-5.
  29. ^ Feinberg, Neal; Keene, Sonya E.; Mathews, Robert O.; Withington, P. Tucker (1997). Dylan Programming. Massachusetts: Addison Wesley. ISBN 0-201-47976-1.
  30. ^ "PEP 572 – Assignment Expressions". python.org. 28 February 2018. Retrieved 4 March 2020.
  31. ^ "The Go Programming Language Specification - The Go Programming Language". golang.org. Retrieved 20 April 2018.
  32. ^ Ullman, Jeffrey D. (1998). Elements of ML Programming: ML97 Edition. Englewood Cliffs, New Jersey: Prentice Hall. ISBN 0-13-790387-1.
  33. ^ Iverson, Kenneth E. (1962). A Programming Language. John Wiley and Sons. ISBN 0-471-43014-5. Archived from the original on 2025-08-06. Retrieved 2025-08-06. {{cite book}}: ISBN / Date incompatibility (help)
  34. ^ Graham, Paul (1996). ANSI Common Lisp. New Jersey: Prentice Hall. ISBN 0-13-370875-6.
  35. ^ Steele, Guy L. (1990). Common Lisp: The Language. Lexington: Digital Press. ISBN 1-55558-041-6.
  36. ^ Dybvig, R. Kent (1996). The Scheme Programming Language: ANSI Scheme. New Jersey: Prentice Hall. ISBN 0-13-454646-6.
  37. ^ Smith, Jerry D. (1988). Introduction to Scheme. New Jersey: Prentice Hall. ISBN 0-13-496712-7.
  38. ^ Abelson, Harold; Sussman, Gerald Jay; Sussman, Julie (1996). Structure and Interpretation of Computer Programs. New Jersey: McGraw-Hill. ISBN 0-07-000484-6.
乙肝245阳性是什么意思 脖子皮肤黑是什么原因 银杏树的叶子像什么 藏红花什么人不能喝 脊髓空洞症吃什么药
半路杀出个程咬金是什么意思 马蜂窝治什么病最好 嗜的意思是什么 甘油三酯指什么 gm是什么牌子
备是什么意思 sicu是什么科室 24D是什么激素 高血压喝什么茶最好 脐下三寸是什么地方
河南为什么叫河南 不知为什么 报仇是什么意思 心机boy什么意思 6月21号是什么日子
菠萝蜜是什么季节的水果hcv7jop5ns5r.cn 小孩反复发烧是什么原因hcv9jop8ns0r.cn 梦遗太频繁是什么原因造成的hcv7jop4ns6r.cn 卷饼卷什么菜好吃hcv7jop7ns2r.cn 劫数是什么意思hcv8jop0ns8r.cn
哗众取宠是什么意思gangsutong.com 五心烦热是什么意思hcv9jop1ns7r.cn 蚊子为什么会咬人hcv7jop9ns5r.cn 大便颜色发黑是什么原因hcv9jop3ns8r.cn 什么产品美白效果最好最快hcv9jop6ns6r.cn
吃什么调理卵巢早衰hcv8jop0ns2r.cn 福字挂在家里什么位置最合适hcv7jop9ns0r.cn 太平鸟属于什么档次hcv8jop2ns5r.cn 下巴老是长痘痘是什么原因hcv7jop5ns3r.cn 为什么会突然流鼻血hcv9jop6ns9r.cn
克霉唑为什么4天一次hcv8jop9ns8r.cn 恩师是什么意思hcv9jop7ns5r.cn 耳朵长疙瘩是什么原因hcv8jop5ns4r.cn 气血不足是什么症状sanhestory.com 属猪的护身佛是什么佛hcv8jop1ns8r.cn
百度