提交 111a7037 编写于 作者: W wizardforcel

2020-06-28 16:09:18

上级 c432fba9
......@@ -72,7 +72,7 @@ for car in rs:
```
“汽车”表中创建了八辆汽车。
`Cars`表中创建了八辆汽车。
```py
Base = declarative_base()
......
......@@ -57,7 +57,7 @@ mysql> SELECT * FROM Books;
```
这是“书籍”表中的内容。
这是`Books`表中的内容。
```sql
mysql> INSERT INTO Books VALUES(3, 'Crime and Punishment',
......@@ -300,7 +300,7 @@ mysql> SELECT * FROM Books;
我们重新创建表`Books`。 这些是行。
假设我们想将“列夫·托尔斯泰”更改为“列夫·尼古拉耶维奇·托尔斯泰”表。 以下语句显示了如何完成此操作。
假设我们想将`"Leo Tolstoy"`更改`'Lev Nikolayevich Tolstoy'`。 以下语句显示了如何完成此操作。
```sql
mysql> UPDATE Books SET Author='Lev Nikolayevich Tolstoy'
......
......@@ -200,6 +200,6 @@ mysql> SELECT Name FROM Customers WHERE NOT EXISTS
```
在此查询中,我们返回“预订”表中没有条目的所有客户。 这两个 SQL 查询都是相关查询。
在此查询中,我们返回`Reservations`表中没有条目的所有客户。 这两个 SQL 查询都是相关查询。
MySQL 教程的这一部分专门针对 MySQL 子查询。
\ No newline at end of file
......@@ -158,7 +158,7 @@ mysql> CREATE TABLE Students(Id INTEGER, Name VARCHAR(55),
```
我们有一个`Students`表。 在此表中,我们有一个“证书”列。 每个学生可以拥有 0、1 个或多个这些证书。 这与`ENUM`约束不同,在`ENUM`约束中,允许值列表中只能有一个不同的值。
我们有一个`Students`表。 在此表中,我们有一个`Certificates`列。 每个学生可以拥有 0、1 个或多个这些证书。 这与`ENUM`约束不同,在`ENUM`约束中,允许值列表中只能有一个不同的值。
```sql
mysql> INSERT INTO Students VALUES(1, 'Paul', 'A1,B1');
......
......@@ -1014,7 +1014,7 @@ $query = "SELECT * FROM Cars WHERE Id IN (1, 2, 3)";
```
这是要执行的查询。 它从“汽车”表中选择前三行。
这是要执行的查询。 它从`Cars`表中选择前三行。
```php
echo "We have " . mysql_num_fields($rs) . " fields\n";
......
......@@ -418,7 +418,7 @@ mysql> select * from Authors;
## 测试 MySQL 预备和非预备的语句
对于以下两个示例,我们将使用“测试”表。 我们将执行一条普通语句和一条准备语句 5000 次。 我们检查执行时间是否有差异。
对于以下两个示例,我们将使用`Testing`表。 我们将执行一条普通语句和一条准备语句 5000 次。 我们检查执行时间是否有差异。
`JdbcNotPreparedTesting.java`
......@@ -1658,7 +1658,7 @@ public class JdbcBatchUpdate {
```
这是用于批处理更新的示例程序。 我们从“作者”表中删除所有数据,然后插入新数据。 我们添加了一位新作者,`Umberto Eco`,以查看更改。
这是用于批处理更新的示例程序。 我们从`Authors`表中删除所有数据,然后插入新数据。 我们添加了一位新作者,`Umberto Eco`,以查看更改。
```java
st.addBatch("DROP TABLE IF EXISTS Authors2");
......
......@@ -729,7 +729,7 @@ DataTable dt = ds.Tables["Authors"];
```
我们得到名为“作者”的表。 我们只给了`DataSet`一个表,但是它可以包含多个表。
我们得到名为`Authors`的表。 我们只给了`DataSet`一个表,但是它可以包含多个表。
```cs
dt.WriteXml("authors.xml");
......
......@@ -61,7 +61,7 @@ sqlite> INSERT INTO Cars(Id) VALUES(4);
```
`INSERT`语句省略了最后两列。 这些列将填充默认值,如果没有默认值,则填充`NULL``Name`列没有默认值,因此有一个`NULL`值。 在`CREATE TABLE`语句中,我们已指定`Price`列具有“不可用”默认值。
`INSERT`语句省略了最后两列。 这些列将填充默认值,如果没有默认值,则填充`NULL``Name`列没有默认值,因此有一个`NULL`值。 在`CREATE TABLE`语句中,我们已指定`Price`列具有`"Not available"`默认值。
```sql
sqlite> SELECT * FROM Cars WHERE Id=4;
......@@ -70,7 +70,7 @@ Id|Name|Price
```
在第二列中,我们有一个`NULL`值。 第三个具有默认的“不可用”字符串。
在第二列中,我们有一个`NULL`值。 第三个具有默认的`"Not available"`字符串。
```sql
sqlite> INSERT INTO Cars VALUES(4, 'Volvo', 29000);
......@@ -234,7 +234,7 @@ sqlite> SELECT * FROM Cars;
`UPDATE`语句用于修改存储在数据库表的零行或更多行中的值的子集。
假设我们想在`Cars`表中将“斯柯达”更改为“斯柯达明锐”。 以下语句显示了如何完成此操作:
假设我们想在`Cars`表中将`'Skoda'`更改为`'Skoda Octavia'`。 以下语句显示了如何完成此操作:
```sql
sqlite> .read cars.sql
......
......@@ -55,7 +55,7 @@ Error: column BrandName is not unique
```
我们收到错误消息“列`BrandName`不是唯一的”。 只能有一个百事可乐品牌。
我们收到错误消息`column BrandName is not unique`。 只能有一个百事可乐品牌。
注意,`PRIMARY KEY`约束自动在其上定义了`UNIQUE`约束。
......@@ -206,7 +206,7 @@ Error: constraint failed
```
如果尝试插入无效值,则会收到一条错误消息,提示“约束失败”
如果尝试插入无效值,则会收到一条错误消息,提示`constraint failed`
## SQLite 默认约束
......@@ -218,7 +218,7 @@ sqlite> CREATE TABLE Hotels(Id INTEGER PRIMARY KEY, Name TEXT,
```
为了演示`DEFAULT`约束,我们创建了`Hotels`表。 `City`列具有默认的“不可用”值。
为了演示`DEFAULT`约束,我们创建了`Hotels`表。 `City`列具有默认的`'not available'`值。
```sql
sqlite> INSERT INTO Hotels(Name, City) VALUES('Kyjev', 'Bratislava');
......@@ -232,6 +232,6 @@ Id Name City
```
在第一个语句中,我们同时提供酒店名称和城市名称。 在第二个语句中,我们仅提供酒店名称。 SQLite 将默认值(“不可用”文本)放在此处。
在第一个语句中,我们同时提供酒店名称和城市名称。 在第二个语句中,我们仅提供酒店名称。 SQLite 将默认值(`'not available'`文本)放在此处。
在 SQLite 教程的这一部分中,我们介绍了 SQLite 数据库支持的约束。
\ No newline at end of file
......@@ -311,7 +311,7 @@ sqlite> SELECT date('now', '2 months');
```
在此示例中,“2 个月”是修饰语。 它会将当前日期增加两个月。 因此该函数返回从今天起两个月的日期。
在此示例中,`'2 months'`是修饰语。 它会将当前日期增加两个月。 因此该函数返回从今天起两个月的日期。
```sql
sqlite> SELECT date('now', '-55 days');
......
......@@ -110,7 +110,7 @@ $dbh->disconnect();
```
我们从“图像”表中读取图像数据,并将其写入另一个文件,我们称为蘑菇`2.jpg`
我们从`IMAGE`表中读取图像数据,并将其写入另一个文件,我们称为蘑菇`2.jpg`
```perl
my $sth = $dbh->prepare("SELECT Data FROM Images WHERE Id=1");
......
......@@ -650,7 +650,7 @@ ERROR 1265 (01000): Data truncated for column 'Size' at row 1
```
由于列表中未提及“大”,因此我们会收到一条错误消息。
由于列表中未提及`'Large'`,因此我们会收到一条错误消息。
```sql
mysql> SELECT * FROM Sizes;
......
......@@ -23,7 +23,7 @@ mysql> CREATE TABLE Testing(Id INTEGER);
```
我们使用`CREATE TABLE`语句创建一个简单的测试表。 表名称是“测试”。 该表具有称为`Id`的一列。 列的数据类型为`INTEGER`
我们使用`CREATE TABLE`语句创建一个简单的测试表。 表名称是`Testing`。 该表具有称为`Id`的一列。 列的数据类型为`INTEGER`
```sql
mysql> SHOW CREATE TABLE Testing;
......
......@@ -1217,7 +1217,7 @@ java.sql.SQLSyntaxErrorException: 'TITL' is not a column in table or VTI 'USER12
```
执行失败,并显示“'TITL'不是表中的列”消息。 引发异常。 事务已回滚,并且未进行任何更改。
执行失败,并显示`'TITL' is not a column in table`消息。 引发异常。 事务已回滚,并且未进行任何更改。
```java
ij> CONNECT 'jdbc:derby:testdb';
......
......@@ -521,7 +521,7 @@ Message 5
```
`Dequeue()`方法从集合中删除“消息 1”。 `Peek()`方法没有。 “消息 2”保留在集合中。
`Dequeue()`方法从集合中删除`Message 1``Peek()`方法没有。 `Message 2`保留在集合中。
## `stack`
......
......@@ -64,7 +64,7 @@ if (n > 0)
```
使用`if`关键字,我们检查生成的数字是否大于零。 `if`关键字后跟一对圆括号。 在方括号内,我们放置一个表达式。 该表达式产生布尔值。 如果布尔值是`true`,则执行两个大括号括起来的块。 在我们的例子中,字符串`n`变量为正”被打印到终端上。 如果随机值为负,则不执行任何操作。 如果我们只有一个表达式,则大括号是可选的。
使用`if`关键字,我们检查生成的数字是否大于零。 `if`关键字后跟一对圆括号。 在方括号内,我们放置一个表达式。 该表达式产生布尔值。 如果布尔值是`true`,则执行两个大括号括起来的块。 在我们的例子中,字符串`The n variable is positive`被打印到终端上。 如果随机值为负,则不执行任何操作。 如果我们只有一个表达式,则大括号是可选的。
```cs
$ dotnet run
......
......@@ -550,7 +550,7 @@ obj2.col.red = 255;
```
在这里,我们修改复制对象的成员字段。 我们增加`id`,将`size`更改为“大”,然后更改颜色对象的红色部分。
在这里,我们修改复制对象的成员字段。 我们增加`id`,将`size`更改为`"big"`,然后更改颜色对象的红色部分。
```cs
Console.WriteLine(obj1);
......@@ -567,7 +567,7 @@ id: 24, size: big, color:(255, 42, 223)
```
我们可以看到 ID 是不同的(23 对 24)。 大小不同(“小”与“大”)。 但是,这两个实例的颜色对象的红色部分相同(255)。 更改克隆对象的成员值(`id``size`)不会影响原始对象。 更改引用对象(`col`)的成员也影响了原始对象。 换句话说,两个对象都引用内存中的同一颜色对象。
我们可以看到 ID 是不同的(23 对 24)。 大小不同(`small``big`)。 但是,这两个实例的颜色对象的红色部分相同(255)。 更改克隆对象的成员值(`id``size`)不会影响原始对象。 更改引用对象(`col`)的成员也影响了原始对象。 换句话说,两个对象都引用内存中的同一颜色对象。
### C# 深层复制
......@@ -1017,7 +1017,7 @@ const int LIMIT = 333;
```
大于此常数的数字在我们的程序中被视为“大”
大于此常数的数字在我们的程序中被视为`big`
```cs
public BigValueException(string msg) : base(msg) {}
......@@ -1034,7 +1034,7 @@ if (x > LIMIT)
```
如果该值大于限制,则抛出自定义异常。 我们给异常消息“超出最大值”
如果该值大于限制,则抛出自定义异常。 我们给异常消息`Exceeded the maximum value`
```cs
} catch (BigValueException e)
......
......@@ -326,7 +326,7 @@ protected new string _name = "Derived class";
```
我们将成员隐藏在“派生”类中。 为了消除编译器警告,我们使用`new`关键字。
我们将成员隐藏在`Derived`类中。 为了消除编译器警告,我们使用`new`关键字。
```cs
public override string Name
......
......@@ -689,7 +689,7 @@ Message 5
```
`Dequeue()`方法从集合中删除“消息 1”。 `Peek()`方法没有。 “消息 2”保留在集合中。
`Dequeue()`方法从集合中删除`Message 1``Peek()`方法没有。 `Message 2`保留在集合中。
## C# `Stack`
......
......@@ -28,7 +28,7 @@ Option Strict On
```
`Option Strict`语句可以为`On``Off`。 默认值为“关”,以便与旧版 Visual Basic 程序向后兼容。 建议在所有新程序中使用此语句。 当该语句为`On`时,编译器将检测各种不良的编程习惯。
`Option Strict`语句可以为`On``Off`。 默认值为`Off`,以便与旧版 Visual Basic 程序向后兼容。 建议在所有新程序中使用此语句。 当该语句为`On`时,编译器将检测各种不良的编程习惯。
```vb
Module Example
......@@ -91,7 +91,7 @@ Dim name As String
```
`Dim`关键字用于声明变量。 该变量称为“名称”。 与常量(在程序生命周期内仅存储一个值)不同,变量可以存储各种不同的值。 `As`关键字定义变量的数据类型。 我们的变量将保存字符串值。
`Dim`关键字用于声明变量。 该变量称为`name`。 与常量(在程序生命周期内仅存储一个值)不同,变量可以存储各种不同的值。 `As`关键字定义变量的数据类型。 我们的变量将保存字符串值。
```vb
name = Console.ReadLine()
......
......@@ -301,7 +301,7 @@ Dim l As String = Left(str, 6)
```
`Left()`函数的调用从字符串的左侧返回 6 个字符。 在我们的例子中,“视觉”
`Left()`函数的调用从字符串的左侧返回 6 个字符。 在我们的例子中,`Visual`
```vb
Dim r As String = Right(str, 5)
......
......@@ -95,7 +95,7 @@ End Module
```
我们有性别变量。 它具有“女性”字符串。 布尔表达式的计算结果为`false`,我们在控制台中得到`"It is a girl"`
我们有性别变量。 它具有`"female"`字符串。 布尔表达式的计算结果为`false`,我们在控制台中得到`"It is a girl"`
```vb
$ ./branch.exe
......@@ -128,7 +128,7 @@ End Module
```
我们有一个数值变量,并测试它是否为负数或正数或等于零。 第一个表达式的计算结果为`false`。 满足第二个条件。 程序在控制台上输出`a`等于零”。 分支的其余部分将被跳过。
我们有一个数值变量,并测试它是否为负数或正数或等于零。 第一个表达式的计算结果为`false`。 满足第二个条件。 程序在控制台上输出`a equals to zero`。 分支的其余部分将被跳过。
## `Select`语句
......@@ -239,7 +239,7 @@ Adult
```
我们输入了 43,程序以“成人”字符串作为响应。
我们输入了 43,程序以`Adult`字符串作为响应。
## `While`语句
......
......@@ -579,7 +579,7 @@ Id: 24, Size: big, Color:(255, 42, 223)
```
我们可以看到 ID 分别为 23 和 24。大小不同。 “小”对“大”。 但是,这两个实例的颜色对象的红色部分相同:255。更改克隆对象的成员值(`Id``Size`)不会影响原始对象。 更改引用对象(`Col`)的成员也影响了原始对象。 换句话说,两个对象都引用内存中的同一颜色对象。
我们可以看到 ID 分别为 23 和 24。大小不同。 `small``big`。 但是,这两个实例的颜色对象的红色部分相同:255。更改克隆对象的成员值(`Id``Size`)不会影响原始对象。 更改引用对象(`Col`)的成员也影响了原始对象。 换句话说,两个对象都引用内存中的同一颜色对象。
要更改此行为,我们接下来将做一个深层复制。
......@@ -919,7 +919,7 @@ Dim Const LIMIT As Integer = 333
```
大于此常数的数字在我们的程序中被视为“大”
大于此常数的数字在我们的程序中被视为`big`
```vb
Sub New(ByVal msg As String)
......
......@@ -10,7 +10,7 @@
## Java 推箱子游戏的开发
我们使用光标键控制推箱子对象。 我们也可以按 `R` 键重新启动电平。 将所有行李放在目的地区域后,游戏结束。 我们在窗口的左上角绘制“已完成”字符串。
我们使用光标键控制推箱子对象。 我们也可以按 `R` 键重新启动电平。 将所有行李放在目的地区域后,游戏结束。 我们在窗口的左上角绘制`"Completed"`字符串。
`Board.java`
......@@ -623,7 +623,7 @@ if (isCompleted) {
```
如果完成该级别,则在窗口的左上角绘制“已完成”
如果完成该级别,则在窗口的左上角绘制`"Completed"`
```java
case KeyEvent.VK_LEFT:
......
......@@ -107,7 +107,7 @@ if (visual != NULL && gdk_screen_is_composited(screen)) {
```
并非所有的显示器都支持此操作。 因此,我们检查屏幕是否支持合成并且返回的视觉效果不是“无”。 我们将屏幕的视觉效果设置为窗口的视觉效果。
并非所有的显示器都支持此操作。 因此,我们检查屏幕是否支持合成并且返回的视觉效果不是`NULL`。 我们将屏幕的视觉效果设置为窗口的视觉效果。
```c
static void do_drawing(cairo_t *cr)
......
......@@ -99,7 +99,7 @@ if visual != None and screen.is_composited():
```
并非所有的显示器都支持此操作。 因此,我们检查屏幕是否支持合成并且返回的视觉效果不是“无”。 我们将屏幕的视觉效果设置为窗口的视觉效果。
并非所有的显示器都支持此操作。 因此,我们检查屏幕是否支持合成并且返回的视觉效果不是`NULL`。 我们将屏幕的视觉效果设置为窗口的视觉效果。
```py
def on_draw(self, wid, cr):
......
......@@ -10,7 +10,7 @@
## 开发
蛇的每个关节的大小为 10 像素。 蛇由光标键控制。 最初,蛇具有三个关节。 如果游戏结束,则画布中间会显示“游戏结束”消息。
蛇的每个关节的大小为 10 像素。 蛇由光标键控制。 最初,蛇具有三个关节。 如果游戏结束,则画布中间会显示`"Game Over"`消息。
`snake.html`
......
......@@ -729,7 +729,7 @@ private void gameFinished(Graphics2D g2d) {
```
`gameFinished()`方法将“游戏结束”或“胜利”绘制到窗口的中间。
`gameFinished()`方法将`"Game Over"``"Victory"`绘制到窗口的中间。
```java
private class GameCycle implements ActionListener {
......
......@@ -177,7 +177,7 @@ fileMenu.Append(qmi)
```
我们创建一个`wx.MenuItem`对象。 &字符指定加速键。 带“&”号后面的字符带有下划线。 实际的快捷方式由字符组合定义。 我们指定了 `Ctrl + Q` 字符。 因此,如果我们按 `Ctrl + Q` ,我们将关闭应用。 我们在&字符和快捷方式之间放置一个制表符。 这样,我们设法在它们之间留出一些空间。 为了提供菜单项的图标,我们调用`SetBitmap()`方法。 通过调用`AppendItem()`方法将手动创建的菜单项附加到菜单。
我们创建一个`wx.MenuItem`对象。 &字符指定加速键。 带`&`号后面的字符带有下划线。 实际的快捷方式由字符组合定义。 我们指定了 `Ctrl + Q` 字符。 因此,如果我们按 `Ctrl + Q` ,我们将关闭应用。 我们在&字符和快捷方式之间放置一个制表符。 这样,我们设法在它们之间留出一些空间。 为了提供菜单项的图标,我们调用`SetBitmap()`方法。 通过调用`AppendItem()`方法将手动创建的菜单项附加到菜单。
```py
self.Bind(wx.EVT_MENU, self.OnQuit, id=APP_EXIT)
......
......@@ -317,7 +317,7 @@ def OnScroll(self, e):
![Burning widget](img/dd7a253f652075e2de872ac04ea9d446.jpg)
图:录小部件
图:录小部件
## CPU 小部件
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/gui/winapi/controlsII/](http://zetcode.com/gui/winapi/controlsII/)
我们继续使用 Windows 控件。 我们将展示如何使用跟踪栏,工具提示和“月”日历控件。
我们继续使用 Windows 控件。 我们将展示如何使用跟踪栏,工具提示和历控件。
## 跟踪栏
......
......@@ -359,7 +359,7 @@ fname = QtGui.QFileDialog.getOpenFileName(self, 'Open file',
```
我们弹出`QtGui.QFileDialog``getOpenFileName()`方法中的第一个字符串是标题。 第二个字符串指定对话框的工作目录。 默认情况下,文件过滤器设置为“所有文件(*)”
我们弹出`QtGui.QFileDialog``getOpenFileName()`方法中的第一个字符串是标题。 第二个字符串指定对话框的工作目录。 默认情况下,文件过滤器设置为`All Files (*)`
```py
f = open(fname, 'r')
......
......@@ -222,7 +222,7 @@ if __name__ == '__main__':
```
在我们的代码示例中,窗口上有一个`QtGui.QPushButton`。 如果我们用鼠标左键单击该按钮,则会在控制台上显示“按”消息。 通过右键单击并移动按钮,我们在按钮小部件上执行拖放操作。
在我们的代码示例中,窗口上有一个`QtGui.QPushButton`。 如果我们用鼠标左键单击该按钮,则会在控制台上显示`'press'`消息。 通过右键单击并移动按钮,我们在按钮小部件上执行拖放操作。
```py
class Button(QtGui.QPushButton):
......@@ -270,7 +270,7 @@ def mousePressEvent(self, e):
```
如果我们用鼠标左键单击按钮,我们将在控制台上打印“按”。 注意,我们也在父对象上调用了`mousePressEvent()`方法。 否则,我们将看不到按钮被按下。
如果我们用鼠标左键单击按钮,我们将在控制台上打印`'press'`。 注意,我们也在父对象上调用了`mousePressEvent()`方法。 否则,我们将看不到按钮被按下。
```py
position = e.pos()
......
......@@ -209,10 +209,10 @@ def changeValue(self, value):
```
当我们移动滑块时,将调用`changeValue()`方法。 在方法内部,我们发送带有参数的自定义`updateBW`信号。 该参数是滑块的当前值。 该值随后用于计算“刻录”小部件的容量。 然后将自定义窗口小部件重新粉刷。
当我们移动滑块时,将调用`changeValue()`方法。 在方法内部,我们发送带有参数的自定义`updateBW`信号。 该参数是滑块的当前值。 该值随后用于计算刻录小部件的容量。 然后将自定义窗口小部件重新粉刷。
![The burning widget](img/389242593dddf452a300c2d235530a49.jpg)
图:录小部件
图:录小部件
在 PyQt4 教程的这一部分中,我们创建了一个自定义小部件。
\ No newline at end of file
......@@ -8,7 +8,7 @@
## 刻录小部件
在下一个示例中,我们创建一个自定义的录小部件。 可以在 Nero 或 K3B 之类的应用中看到此小部件。 该小部件将从头开始创建。
在下一个示例中,我们创建一个自定义的录小部件。 可以在 Nero 或 K3B 之类的应用中看到此小部件。 该小部件将从头开始创建。
`burning.h`
......@@ -288,7 +288,7 @@ QString num[] = { "75", "150", "225", "300", "375", "450",
```
我们使用这些数字来构建录小部件的比例。
我们使用这些数字来构建录小部件的比例。
```cpp
int width = size().width();
......@@ -363,6 +363,6 @@ int main(int argc, char *argv[]) {
![The Burning widget](img/519811b6a406d2ac1af34740c57a901e.jpg)
图:录小部件
图:录小部件
在 Qt4 教程的这一部分中,我们创建了一个自定义的烧录小部件。
\ No newline at end of file
在 Qt4 教程的这一部分中,我们创建了一个自定义的刻录小部件。
\ No newline at end of file
......@@ -840,7 +840,7 @@ void Breakout::finishGame(QPainter *painter, QString message) {
```
`finishGame()`方法在窗口中心绘制一条最终消息。 它是“游戏失败”或“胜利”`QFontMetrics'` `width()`用于计算字符串的宽度。
`finishGame()`方法在窗口中心绘制一条最终消息。 它是`"Game Over"``"Victory"``QFontMetrics'` `width()`用于计算字符串的宽度。
```cpp
void Breakout::drawObjects(QPainter *painter) {
......
......@@ -6,7 +6,7 @@
## 刻录控件
可以在各种媒体刻录应用中找到此控件,例如 Nero 录 ROM。
可以在各种媒体刻录应用中找到此控件,例如 Nero 录 ROM。
```c
#include <windows.h>
......@@ -198,6 +198,6 @@ LRESULT CALLBACK PanelProc(HWND hwnd, UINT msg,
![Burning control](img/52c33bbda7a2cb616fe6ef5ed86671b9.jpg)
图:录控件
图:录控件
在 Windows API 教程的这一部分中,我们创建了烧录自定义控件。
\ No newline at end of file
在 Windows API 教程的这一部分中,我们创建了刻录自定义控件。
\ No newline at end of file
......@@ -218,7 +218,7 @@ if __name__ == '__main__':
```
在我们的代码示例中,窗口上有一个`QtGui.QPushButton`。 如果我们用鼠标左键单击该按钮,则会在控制台上打印“按”。 通过右键单击并移动按钮,我们在按钮小部件上执行拖放操作。
在我们的代码示例中,窗口上有一个`QtGui.QPushButton`。 如果我们用鼠标左键单击该按钮,则会在控制台上打印`'press'`。 通过右键单击并移动按钮,我们在按钮小部件上执行拖放操作。
```py
class Button(QtGui.QPushButton):
......@@ -265,7 +265,7 @@ def mousePressEvent(self, e):
```
如果我们用鼠标左键单击按钮,我们将在控制台上打印“按”。 注意,我们也在父对象上调用了`mousePressEvent()`方法。 否则,我们将看不到按钮被按下。
如果我们用鼠标左键单击按钮,我们将在控制台上打印`'press'`。 注意,我们也在父对象上调用了`mousePressEvent()`方法。 否则,我们将看不到按钮被按下。
```py
position = e.pos()
......
......@@ -207,10 +207,10 @@ def changeValue(self, value):
```
当我们移动滑块时,将调用`changeValue()`方法。 在方法内部,我们发送带有参数的自定义`updateBW`信号。 该参数是滑块的当前值。 该值随后用于计算“刻录”小部件的容量。 然后将自定义窗口小部件重新粉刷。
当我们移动滑块时,将调用`changeValue()`方法。 在方法内部,我们发送带有参数的自定义`updateBW`信号。 该参数是滑块的当前值。 该值随后用于计算刻录小部件的容量。 然后将自定义窗口小部件重新粉刷。
![The Burning widget](img/5754b9c4561cc6a79147332ec7006b43.jpg)
图:录小部件
图:录小部件
在 PySide 教程的这一部分中,我们创建了一个自定义小部件。
\ No newline at end of file
......@@ -457,7 +457,7 @@ proc gameOver {} {
```
如果游戏结束,我们将删除画布上的所有项目。 然后,在屏幕中央绘制“游戏结束”
如果游戏结束,我们将删除画布上的所有项目。 然后,在屏幕中央绘制`"Game Over"`
![Nibbles](img/ad2ba9d5f8b693df68135cc6d9455d79.jpg)
......
......@@ -8,7 +8,7 @@
## 开发
蛇的每个关节的大小为 10 像素。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 游戏结束后,窗口中央将显示“游戏结束”消息。
蛇的每个关节的大小为 10 像素。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 游戏结束后,窗口中央将显示`"Game Over"`消息。
`Board.java`
......@@ -327,7 +327,7 @@ if (inGame) {
```
`doPainting()`方法内部,我们检查`inGame`变量。 如果是真的,我们将绘制对象-苹果和蛇关节。 否则,我们显示“游戏结束”文本。
`doPainting()`方法内部,我们检查`inGame`变量。 如果是真的,我们将绘制对象-苹果和蛇关节。 否则,我们显示`"Game Over"`文本。
```java
private void drawObjects(Event e) {
......
......@@ -10,7 +10,7 @@
## 开发
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 游戏结束后,我们在状态栏小部件中显示“游戏结束”消息。
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 游戏结束后,我们在状态栏小部件中显示`"Game Over"`消息。
`board.java`
......
......@@ -110,7 +110,7 @@ public class Burning extends QWidget {
```
在这个文件中,我们创建了录小部件。
在这个文件中,我们创建了录小部件。
```java
public class Burning extends QWidget {
......@@ -140,7 +140,7 @@ private String num[] = {
```
我们使用这些数字来构建录小部件的比例。
我们使用这些数字来构建录小部件的比例。
```java
@Override
......@@ -305,7 +305,7 @@ hbox.addWidget(widget, 0);
```
我们创建了录小部件的实例,并将其添加到水平框中。
我们创建了录小部件的实例,并将其添加到水平框中。
```java
public void valueChanged(int val) {
......@@ -328,6 +328,6 @@ public int getCurrentWidth() {
![The Burning widget](img/d59ddf85ead4b941bf957c570a19309c.jpg)
图:录小部件
图:录小部件
在 QtJambi 教程的这一部分中,我们演示了如何创建自定义窗口小部件。
\ No newline at end of file
......@@ -263,7 +263,7 @@ if (inGame) {
```
`paintEvent()`方法内部,我们检查`inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示“游戏结束”文本。
`paintEvent()`方法内部,我们检查`inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示`"Game Over"`文本。
```java
private void drawObjects(QPainter painter) {
......
......@@ -217,6 +217,6 @@ end
![Burning widget](img/98d1c8baa28dc2806aee2c2fdb46e4d2.jpg)
图:录小部件
图:录小部件
在本章中,我们使用 GTK 和 Ruby 编程语言创建了一个自定义小部件。
\ No newline at end of file
......@@ -295,7 +295,7 @@ end
```
`on_draw`方法内部,我们检查`@inGame`变量。 如果是真的,我们绘制对象:苹果和蛇关节。 否则,我们显示“游戏结束”文本。
`on_draw`方法内部,我们检查`@inGame`变量。 如果是真的,我们绘制对象:苹果和蛇关节。 否则,我们显示`"Game Over"`文本。
```rb
def draw_objects cr
......
......@@ -8,7 +8,7 @@
## 刻录小部件
这是我们从头开始创建的小部件的示例。 可以在各种媒体刻录应用(例如 Nero 录 ROM)中找到此小部件。
这是我们从头开始创建的小部件的示例。 可以在各种媒体刻录应用(例如 Nero 录 ROM)中找到此小部件。
`burning.cs`
......@@ -204,6 +204,6 @@ void OnChanged(object sender, EventArgs args)
![Burning widget](img/e2235d128fceb509a7f7200eb41349a0.jpg)
图:录小部件
图:录小部件
在本章中,我们在 GTK# 中创建了一个自定义窗口小部件。
\ No newline at end of file
......@@ -358,7 +358,7 @@ fname = QFileDialog.getOpenFileName(self, 'Open file', '/home')
```
我们弹出`QFileDialog``getOpenFileName()`方法中的第一个字符串是标题。 第二个字符串指定对话框的工作目录。 默认情况下,文件过滤器设置为“所有文件(*)”
我们弹出`QFileDialog``getOpenFileName()`方法中的第一个字符串是标题。 第二个字符串指定对话框的工作目录。 默认情况下,文件过滤器设置为`All Files (*)`
```py
if fname[0]:
......
......@@ -10,7 +10,7 @@
## 刻录小部件
这是我们从头开始创建的小部件的示例。 可以在各种媒体刻录应用(例如 Nero 录 ROM)中找到此小部件。
这是我们从头开始创建的小部件的示例。 可以在各种媒体刻录应用(例如 Nero 录 ROM)中找到此小部件。
`custom.vb`
......@@ -275,6 +275,6 @@ End Sub
![Burning widget](img/062e0fe5157a91f5fb036ffb3e350869.jpg)
图:录小部件
图:录小部件
在本章中,我们使用 GTK# 和 Visual Basic 创建了一个自定义窗口小部件。
\ No newline at end of file
......@@ -286,7 +286,7 @@ End If
```
`OnExpose`方法内部,我们检查`inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示“游戏结束”文本。
`OnExpose`方法内部,我们检查`inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示`"Game Over"`文本。
```vb
Private Sub DrawObjects(ByVal cc As Cairo.Context)
......
......@@ -8,7 +8,7 @@
## 刻录小部件
这是我们从头开始创建的小部件的示例。 可以在各种媒体刻录应用(例如 Nero 录 ROM)中找到此小部件。
这是我们从头开始创建的小部件的示例。 可以在各种媒体刻录应用(例如 Nero 录 ROM)中找到此小部件。
`burning.py`
......@@ -197,6 +197,6 @@ def on_changed(self, widget):
![Burning widget](img/feb3b93e26091d1e6e3bdaaad9382a6f.jpg)
图:录小部件
图:录小部件
在本章中,我们在 PyGTK 中创建了一个自定义小部件。
\ No newline at end of file
......@@ -224,6 +224,6 @@ public function on_changed($sender) {
![Burning widget](img/ba69f46f9147f0768c89af8b06b0a8f1.jpg)
图:录小部件
图:录小部件
在本章中,我们使用 GTK 和 PHP 编程语言创建了一个自定义窗口小部件。
\ No newline at end of file
......@@ -288,7 +288,7 @@ if ($this->inGame) {
```
`on_expose()`方法内部,我们检查`$this->inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示“游戏结束”文本。
`on_expose()`方法内部,我们检查`$this->inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示`"Game Over"`文本。
```php
public function draw_objects($cr) {
......@@ -317,7 +317,7 @@ public function draw_objects($cr) {
`draw_objects()`方法绘制苹果和蛇的关节。 蛇的第一个关节是其头部,用红色圆圈表示。
如果游戏结束,则调用`game_over()`方法。 此方法在窗口中心显示“游戏结束”
如果游戏结束,则调用`game_over()`方法。 此方法在窗口中心显示`"Game Over"`
```php
$c_x = $this->get_allocation()->width/2;
......
......@@ -228,7 +228,7 @@ if __name__ == '__main__':
```
在我们的代码示例中,窗口上有一个`QPushButton`。 如果我们用鼠标左键单击该按钮,则会在控制台上显示“按”消息。 通过右键单击并移动按钮,我们可以对按钮小部件执行拖放操作。
在我们的代码示例中,窗口上有一个`QPushButton`。 如果我们用鼠标左键单击该按钮,则会在控制台上显示`'press'`消息。 通过右键单击并移动按钮,我们可以对按钮小部件执行拖放操作。
```py
class Button(QPushButton):
......@@ -276,7 +276,7 @@ def mousePressEvent(self, e):
```
如果我们用鼠标左键单击按钮,我们将在控制台上打印“按”。 注意,我们也在父对象上调用了`mousePressEvent()`方法。 否则,我们将看不到按钮被按下。
如果我们用鼠标左键单击按钮,我们将在控制台上打印`'press'`。 注意,我们也在父对象上调用了`mousePressEvent()`方法。 否则,我们将看不到按钮被按下。
```py
position = e.pos()
......
......@@ -6,7 +6,7 @@
大多数工具包通常仅提供最常用的窗口小部件,例如按钮,文本窗口小部件,滑块等。没有工具箱可以提供所有可能的窗口小部件。 程序员必须自己创建此类小部件。 他们使用工具箱提供的绘图工具来完成此任务。 有两种可能性。 程序员可以修改或增强现有的小部件。 或者,他可以从头开始创建自定义窗口小部件。
在本章中,我们将创建两个自定义窗口小部件。 录小部件和 Led 小部件。
在本章中,我们将创建两个自定义窗口小部件。 录小部件和 Led 小部件。
## 刻录小部件
......@@ -106,7 +106,7 @@ public class Burning : QWidget
```
在这个文件中,我们创建了录小部件。
在这个文件中,我们创建了录小部件。
```cs
public class Burning : QWidget
......@@ -139,7 +139,7 @@ String[] num =
```
我们使用这些数字来构建录小部件的比例。
我们使用这些数字来构建录小部件的比例。
```cs
protected override void OnPaintEvent(QPaintEvent pe)
......@@ -305,7 +305,7 @@ hbox.AddWidget(widget, 0);
```
我们创建了录小部件的实例,并将其添加到水平框中。
我们创建了录小部件的实例,并将其添加到水平框中。
```cs
[Q_SLOT]
......@@ -331,7 +331,7 @@ public int GetCurrentWidth()
![The Burning widget](img/1234390d2ead79a7b2646245d2882e8c.jpg)
图:录小部件
图:录小部件
## Led 小部件
......
......@@ -271,7 +271,7 @@ if (inGame)
```
`PaintEvent()`方法内部,我们检查`inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示“游戏结束”文本。
`PaintEvent()`方法内部,我们检查`inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示`"Game Over"`文本。
```cs
void DrawObjects(QPainter painter)
......
......@@ -154,7 +154,7 @@ app.exec
```
在这个文件中,我们创建了录小部件。
在这个文件中,我们创建了录小部件。
```rb
class Burning < Qt::Widget
......@@ -278,6 +278,6 @@ end
![The Burning widget](img/8c8b2b7270eee32a743a32c456c17ab8.jpg)
图:录小部件
图:录小部件
在 Ruby Qt 教程的这一部分中,我们已经演示了如何创建自定义窗口小部件。
\ No newline at end of file
......@@ -248,7 +248,7 @@ end
```
`paintEvent`方法内部,我们检查`@inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示“游戏结束”文本。
`paintEvent`方法内部,我们检查`@inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示`"Game Over"`文本。
```rb
def drawObjects painter
......
......@@ -217,10 +217,10 @@ def changeValue(self, value):
```
当我们移动滑块时,将调用`changeValue()`方法。 在方法内部,我们发送带有参数的自定义`updateBW`信号。 该参数是滑块的当前值。 该值随后用于计算“刻录”小部件的容量。 然后将自定义窗口小部件重新粉刷。
当我们移动滑块时,将调用`changeValue()`方法。 在方法内部,我们发送带有参数的自定义`updateBW`信号。 该参数是滑块的当前值。 该值随后用于计算刻录小部件的容量。 然后将自定义窗口小部件重新粉刷。
![The burning widget](img/21f0b045bcbff1f1a8060ad01a9504cf.jpg)
图:录小部件
图:录小部件
在 PyQt5 教程的这一部分中,我们创建了一个自定义小部件。
\ No newline at end of file
......@@ -109,7 +109,7 @@ End Namespace
```
在这个文件中,我们创建了录小部件。
在这个文件中,我们创建了录小部件。
```vb
Public Class Burning
......@@ -141,7 +141,7 @@ Dim num() As String = { _
```
我们使用这些数字来构建录小部件的比例。
我们使用这些数字来构建录小部件的比例。
```vb
Protected Overrides Sub PaintEvent(ByVal e As QPaintEvent)
......@@ -306,7 +306,7 @@ hbox.AddWidget(widget, 0)
```
我们创建了录小部件的实例,并将其添加到水平框中。
我们创建了录小部件的实例,并将其添加到水平框中。
```vb
<Q_SLOT()> _
......@@ -330,6 +330,6 @@ End Function
![The Burning widget](img/a1802ae945098490c0ea330656bdbf6b.jpg)
图:录小部件
图:录小部件
在 Visual Basic Qyoto 教程的这一部分中,我们演示了如何创建自定义窗口小部件。
\ No newline at end of file
......@@ -282,7 +282,7 @@ End If
```
`PaintEvent()`方法内部,我们检查`inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示“游戏结束”文本。
`PaintEvent()`方法内部,我们检查`inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示`"Game Over"`文本。
```vb
Private Sub DrawObjects(ByVal painter As QPainter)
......
......@@ -230,7 +230,7 @@ def paint(self, g):
```
`paint()`方法内部,我们检查`inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示“游戏结束”文本。
`paint()`方法内部,我们检查`inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示`"Game Over"`文本。
```py
def drawObjects(self, g):
......
......@@ -313,7 +313,7 @@ end
```
`paint`方法内部,我们检查`@inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示“游戏结束”文本。 `Toolkit.getDefaultToolkit.sync`方法可确保显示为最新。 这对于动画很有用。
`paint`方法内部,我们检查`@inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示`"Game Over"`文本。 `Toolkit.getDefaultToolkit.sync`方法可确保显示为最新。 这对于动画很有用。
```rb
def drawObjects g
......
......@@ -60,7 +60,7 @@ out << a << endl;
```
终端上印有“我爱象棋”
终端上印有`I love chess`
```cpp
out << "The a string has " << a.count()
......@@ -419,21 +419,21 @@ out << str.right(5) << endl;
```
通过`right()`方法,我们获得`str`字符串的最右边五个字符。 将打印“火车”
通过`right()`方法,我们获得`str`字符串的最右边五个字符。 将打印`train`
```cpp
out << str.left(9) << endl;
```
使用`left()`方法,我们获得`str`字符串的最左边九个字符。 将打印“夜晚”
使用`left()`方法,我们获得`str`字符串的最左边九个字符。 将打印`night`
```cpp
out << str.mid(4, 5) << endl;
```
使用`mid()`方法,我们从第 4 个位置开始得到 5 个字符。 打印“夜晚”
使用`mid()`方法,我们从第 4 个位置开始得到 5 个字符。 打印`night`
```cpp
QString str2("The big apple");
......
......@@ -344,12 +344,12 @@ Today is 10/31/15
| --- | --- |
| `d` | 不带前导零(1 到 31)的日期 |
| `dd` | 带前导零(01 到 31)的日期 |
| `ddd` | 本地化日期的缩写(例如,“周一”到“周日”)。 使用`QDate::shortDayName()`。 |
| `dddd` | 本地化的长名称(例如,“星期一”到“星期日”)。 使用`QDate::longDayName()`。 |
| `ddd` | 本地化日期的缩写(例如,`Mon``Sun`)。 使用`QDate::shortDayName()`。 |
| `dddd` | 本地化的长名称(例如,`Monday``Sunday`)。 使用`QDate::longDayName()`。 |
| `M` | 不带前导零(1 到 12)的月份 |
| `MM` | 前导零(01 到 12)的月份 |
| `MMM` | 本地化月份的缩写名称(例如,`"Jan"``"Dec"`)。 使用`QDate::shortMonthName()`。 |
| `MMMM` | 本地化的长月份名称(例如,“一月”到“十二月”)。 使用`QDate::longMonthName()`。 |
| `MMMM` | 本地化的长月份名称(例如,`January``December`)。 使用`QDate::longMonthName()`。 |
| `y` | 两位数(00 到 99)的年份 |
| `yyyy` | 四位数的年份。 如果年份为负数,则还会附加一个减号。 |
......
......@@ -368,7 +368,7 @@ void Disconnect::onClick() {
```
如果单击“单击”按钮,则将“单击按钮”文本发送到终端窗口。
如果单击“单击”按钮,则将`"Button clicked"`文本发送到终端窗口。
```cpp
void Disconnect::onCheck(int state) {
......
......@@ -286,7 +286,7 @@ QString num[] = { "75", "150", "225", "300", "375", "450",
```
我们使用这些数字来构建录小部件的比例。
我们使用这些数字来构建录小部件的比例。
```cpp
int width = size().width();
......@@ -361,6 +361,6 @@ int main(int argc, char *argv[]) {
![The Burning widget](img/519811b6a406d2ac1af34740c57a901e.jpg)
图:录小部件
图:录小部件
在 Qt5 教程的这一部分中,我们创建了一个自定义的烧录小部件。
\ No newline at end of file
在 Qt5 教程的这一部分中,我们创建了一个自定义的刻录小部件。
\ No newline at end of file
......@@ -837,7 +837,7 @@ void Breakout::finishGame(QPainter *painter, QString message) {
```
`finishGame()`方法在窗口中心绘制一条最终消息。 它是“游戏失败”或“胜利”`QFontMetrics'` `width()`用于计算字符串的宽度。
`finishGame()`方法在窗口中心绘制一条最终消息。 它是`"Game Over"``"Victory"``QFontMetrics'` `width()`用于计算字符串的宽度。
```cpp
void Breakout::drawObjects(QPainter *painter) {
......
......@@ -386,7 +386,7 @@ EUROPA
### 比较字符串
`lstrcmpW()`函数比较两个字符串。 如果字符串相等,则返回 0。 比较是区分大小写的。 这意味着“杯”和“杯”是两个不同的字符串。 `lstrcmpiW()`产生不区分大小写的字符串比较。 对于此函数,“杯子”和“杯子”相等。
`lstrcmpW()`函数比较两个字符串。 如果字符串相等,则返回 0。 比较是区分大小写的。 这意味着`Cup``cup`是两个不同的字符串。 `lstrcmpiW()`产生不区分大小写的字符串比较。 对于此函数,`Cup``cup`相等。
```c
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2);
......
......@@ -903,7 +903,7 @@ private class ClickAction extends AbstractAction {
```
该按钮启动或停止计时器。 该按钮的文本会动态更新。 它可以具有“开始”,“停止”或“结束”字符串值。
该按钮启动或停止计时器。 该按钮的文本会动态更新。 它可以具有`"Start"``Stop``"End"`字符串值。
![JProgressBar](img/0be3526b07142f3901acd930ce4a6fab.jpg)
......
......@@ -8,7 +8,7 @@
## 刻录小部件
这是我们从头开始创建的小部件的示例。 可以在各种媒体刻录应用(例如 Nero 录 ROM)中找到此小部件。
这是我们从头开始创建的小部件的示例。 可以在各种媒体刻录应用(例如 Nero 录 ROM)中找到此小部件。
`widget.h`
......@@ -265,6 +265,6 @@ void Burning::OnScroll(wxScrollEvent& WXUNUSED(event))
![Burning Widget](img/f3858060acfd1570b007711fb52bcc64.jpg)
图:录小部件
图:录小部件
在 wxWidgets 教程的这一部分中,我们创建了一个自定义窗口小部件。
\ No newline at end of file
......@@ -689,7 +689,7 @@ final int LIMIT = 333;
```
大于此常数的数字在我们的程序中被视为“大”
大于此常数的数字在我们的程序中被视为`big`
```java
if (x > LIMIT) {
......
......@@ -14,7 +14,7 @@ HTML5 `canvas`元素提供了一个与分辨率有关的位图区域,该区域
## JavaScript 贪食蛇代码示例
蛇的每个关节的大小为 10 像素。 蛇由光标键控制。 最初,蛇具有三个关节。 如果游戏结束,则画布中间会显示“游戏结束”消息。
蛇的每个关节的大小为 10 像素。 蛇由光标键控制。 最初,蛇具有三个关节。 如果游戏结束,则画布中间会显示`"Game Over"`消息。
`index.html`
......
......@@ -210,7 +210,7 @@ $object2->size = "big";
```
在这里,我们修改克隆对象的成员字段。 我们增加 id,更改颜色对象的红色部分,并将大小更改为“大”
在这里,我们修改克隆对象的成员字段。 我们增加 id,更改颜色对象的红色部分,并将大小更改为`big`
```php
print_r($object1);
......@@ -249,7 +249,7 @@ Object Object
```
我们可以看到 ID 不同:23 与 24。大小不同:“小”与“大”。 但是,这两个实例的颜色对象的红色部分相同:255。更改克隆对象的成员值不会影响原始对象。 更改引用对象的成员也影响了原始对象。 换句话说,两个对象都引用内存中的同一颜色对象。
我们可以看到 ID 不同:23 与 24。大小不同:`small``big`。 但是,这两个实例的颜色对象的红色部分相同:255。更改克隆对象的成员值不会影响原始对象。 更改引用对象的成员也影响了原始对象。 换句话说,两个对象都引用内存中的同一颜色对象。
要更改此行为,我们接下来将做一个深层复制。
......@@ -468,7 +468,7 @@ define("LIMIT", 333);
```
大于此常量的数字在我们的 PHP 脚本中被视为“大”
大于此常量的数字在我们的 PHP 脚本中被视为`big`
```php
class BigValueException extends Exception {
......
......@@ -224,7 +224,7 @@ for row in rows:
```
我们通过“城市”表的列名称引用数据。
我们通过`cities`表的列名称引用数据。
## PyMySQL 列标题
......
......@@ -982,7 +982,7 @@ LIMIT = 333
```
超出此常数的数字在我们的程序中被视为“大”
超出此常数的数字在我们的程序中被视为`big`
```ruby
if x > LIMIT
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册