问题标签 [gnu-smalltalk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
136 浏览

object - 为什么这个类/实例变量没有被初始化?

我正在尝试使用 gnu-smalltalk。在以下带有变量的简单类的代码中,我发现它没有被初始化为给定值:

该对象被创建而没有任何错误。但是,输出是:

虽然我预计它会是 555。

如果我添加一个方法来为其赋值并在创建类的实例后调用它,它就可以工作。

问题出在哪里,如何纠正?谢谢。

0 投票
1 回答
253 浏览

directory - 对象:目录错误:不理解#name

以下列出目录中文件的简单代码来自这里

但是,它不起作用并给出以下错误:

我正在Debian Stable Linux上开发GNU Smalltalk 3.2.5版。

问题出在哪里,如何解决?

0 投票
1 回答
112 浏览

string - Why file path string is not splitting

I want to find files in a directory, then split the pathname and print each part of path on a separate line:

However it is giving following error:

The error message is really long and complex!

Both findTokens and splitOn are not working.

Where is the problem and how can this be solved.

0 投票
1 回答
65 浏览

file - 为什么这里没有读取文件的第一行

我正在尝试以下代码来读取和打印目录中所有扩展名为 .st 的文件的第一行:

但是,它不起作用并给出以下错误:

哪里有问题?谢谢你的帮助。

编辑:@tucan 的回答中的以下代码不起作用:

错误是:

行。解决:FileStream open: (ff name)工作。

0 投票
0 回答
61 浏览

file - 如何知道文件是否是二进制文件

我知道我可以获取目录中所有文件的列表并用代码打印它们的名称:

我可以用它isDirectory来确定文件是否是目录。

如何确定文件是二进制文件而不是文本文件。

isBinary这里提到但它不起作用:

错误是:

如何确定文件是否为二进制文件?

0 投票
1 回答
60 浏览

function - 为什么此方法的返回部分不起作用

我正在尝试编写一个返回新值的方法。以下代码从这里修改:

虽然上述函数创建了新字符串并显示它,但返回或接收返回的新字符串时出现错误:

问题出在哪里,如何解决?谢谢你的帮助。

0 投票
1 回答
109 浏览

string - 为什么这个块没有修剪字符串

我正在尝试以下块从发送的字符串中修剪前导空格:

它可以正常工作,但不会从发送的字符串中删除前导空格。返回值与发送的字符串相同。

显然,第一个字符ch没有被选中。at:也不能代替byteAt:.

问题出在哪里,如何解决?谢谢。

0 投票
1 回答
277 浏览

class - 修剪字符串的类和方法甚至没有开始

我正在尝试创建一个具有字符串修剪功能的类:

但是,它没有运行并给出以下错误:

问题出在哪里,如何解决?

如果我删除.after trimleading 方法块,如下面的代码:

然后代码开始运行,但因以下错误而停止:

为什么trimleading方法现在是未定义的,为什么是 gnu-smalltalk did not understand #trim:

0 投票
2 回答
117 浏览

string - 我可以用我的方法扩展内置的 String 类吗

我发现没有内置trim (strip)方法可以从内置String类中的字符串中删除前导空格和尾随空格。我想用我的功能扩展它。可能吗?在这里使用示例,我尝试了以下代码:

上面的代码不起作用并给出以下错误:

问题出在哪里,如何纠正?谢谢。

编辑:以下代码有效,但不会更改原始字符串:

怎么可能oristr trim改变oristr?我不想写oristr := oristr trim

0 投票
1 回答
557 浏览

collections - 为什么在 Smalltalk 中向自身添加集合会爆炸?

我想知道为什么这没有在 GNU Smalltalk 中终止:

s := Set new. s add: s

理论上,s应该只是一个包含空集的集合。但是执行它只会永远循环,炸毁堆。

有趣的是, ((s := Set with: 4 with: 5 with: 6) add: s) size.终止并评估为 4。