我正在学习D并且正在采取婴儿步骤,所以请耐心等待我.
我正在读这本名为"D编程语言"的书.我正在使用D-IDE代码.我目前正在编写一个程序,如果该书还没有这个单词,它应该在它的词汇表(词典)中添加单词.
但问题是,本书提供的代码无效,而不仅仅是继续阅读结果应该是什么等等.我想尝试解决它.当然是我对D这么新的问题.
代码看起来像这样:
import std.stdio, std.string;
void main() {
uint[string] dictionary;
foreach(line; stdin.byLine()) {
// Break sentence into words
// Add each word in the sentence to the vocabulary
foreach(word; splitter(strip(line))) {
if(word in dictionary) continue; // Nothing to do
auto newID = dictionary.length;
dictionary[word] = newID;
writeln(newID, '\t', word);
}
}
}
Run Code Online (Sandbox Code Playgroud)
IDE说Error: undefined identifier splitter,因为我对Java很有经验,我猜错误意味着该方法不存在,并且因此尝试将其作为变量处理,但这也不存在.所以我尝试将其改为"拆分".这会在字典中产生另一个错误:Error: associative arrays can only be assigned values with immutable keys, not char[]
所以我真的不知道如何解决这个问题并让它发挥作用.当书本中应该教你的代码时,令人沮丧的是不行.我正在使用dmd2.
我目前正在编写一个程序来帮助编写Lore.每个图书对象都可以是父母并且有孩子.这意味着每个孩子都可以有孩子等无限.我正在使用ToString()方法,可以使用递归来解决这个问题,但我不断得到StackOverflowException.
我知道这意味着什么,但我对如何解决这个问题表示怀疑.我是C#的新手,但有很多Java经验,所以如果你知道一些我错过的技巧或者其他东西,请告诉我!
所以我的问题是:如何避免StackOverflow异常?问题出在GetAllChildren()
编辑:
运行测试后,我应该得到这样的东西:
Name: a
Children:
b
c
d
e
Run Code Online (Sandbox Code Playgroud)
使用@lc的代码.我得到以下输出:
Name: a
Children: No Children b
c
e
b
c
e
b
c
e
Run Code Online (Sandbox Code Playgroud)
这是班级:
class Book
{
private String name;
private Book[] children;
private StringBuilder text;
private Boolean isParent;
public Book(String name, Book[] children, StringBuilder text, Boolean isParent)
{
this.name = name;
this.children = children;
this.text = text;
this.isParent = isParent;
}
/**
* Most likely all possible Constructors
* */
public Book(String name, Book[] children) …Run Code Online (Sandbox Code Playgroud) 我查看了一些示例,并尝试在Google上搜索了几个小时,但似乎我找不到涵盖我要问的问题.
如果我想做类似的事情
同时使用W + A,并将其作为单独的键事件注册,而不是单独注册为W和A,我将如何使用JNativeHook进行此操作?是因为我在某个地方错过了一个涵盖这个的课程,还是只有一个解决方法只能阅读一个关键?
我试图在控制台中执行它(因此我使用此库而不是Swing).
我拿了他们的例子,想尝试修改它:
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;
public class GlobalKeyListener implements NativeKeyListener {
@Override
public void nativeKeyPressed(NativeKeyEvent e) {
System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
if (e.getKeyCode() == NativeKeyEvent.VC_ESCAPE) {
GlobalScreen.unregisterNativeHook();
}
}
@Override
public void nativeKeyReleased(NativeKeyEvent e) {
System.out.println("Key Released: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
}
@Override
public void nativeKeyTyped(NativeKeyEvent e) {
System.out.println("Key Typed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
}
public static void main(String[] args) {
try {
GlobalScreen.registerNativeHook();
} catch (NativeHookException ex) {
System.err.println("There was …Run Code Online (Sandbox Code Playgroud) 我有一个HTML表格,如下所示:
<table id="spreadsheet" class="table table-striped" cellspacing="0" width="100%">
<thead>
<tr>
<th id="spreadsheet-year">2015</th>
<th>Month (Est)</th>
<th>Month (Act)</th>
<th>YTD (Est)</th>
<th>YTD (Act)</th>
<th>Full Year (Est)</th>
<th>Full Year (Act)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jan</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Feb</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Mar</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Apr</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
...
...
...
</tbody>
</table>Run Code Online (Sandbox Code Playgroud)
这给了我这个:
我使用这个脚本使表交互.它工作得非常好,但我想知道在提交或关闭模态后如何重置表格?否则,当用户再次打开模态时,相同的值将保持不变.
我试图寻找解决方案,但我根本不能.我想显示以字节为单位计算的long的兆字节表示.
在Java中,您有一个名为length()的方法,您可以在文件对象上调用该方法.它将返回存储在long中的文件大小(以字节为单位).现在,我希望将其转换为兆字节而不是字节.我正在尝试的文件大小为161000字节.如果我没有记错的话,那意味着0.161兆字节.所以我会做bytes/100000,我希望得到0.161.问题是我没有.
如果我转到我的Windows计算器或任何其他计算器,应用程序可以设法显示这3个小数.为什么我不能这样做?我试图将结果存储在一个double中,它只是0.0
编辑:已找到答案.感谢wrm:
long b = file.length(); double mb =(double)b /(1024*1024);
我一直试图解决这个问题很长一段时间,但我根本无法制作任何ASP.NET项目Visual Studio Express 2012 for Web.我开始一个新项目时遇到这个错误:
Web应用程序项目当前配置为使用IIS Express.要切换回使用Visual Studio开发服务器,请更改"选项"菜单的"项目和解决方案/ Web项目"类别下的开发服务器选项.配置的IIS Express失败,并显示以下错误:
所以我上网尝试找到其他有相同错误的人,但我无法找到解决问题的具体方法.我发现旧版本有类似的东西,但它不能解决我的问题.我的服务下有IIS管理器(当你想管理Windows时).我甚至做了一个虚拟文件夹,但无济于事.仍然无法正常工作.
我想使用IIS
我该如何解决?
我需要尝试在飞机上找到一个免费座位,然后保留该座位.
我需要返回一个值来表示成功与否以及座位号.通过环顾四周,我发现函数不能返回超过1的值,所以我考虑使用数组,但是查看那些文档,很明显我在PL/SQL上不太了解如何使用它们.
所以我在这里搁浅了.
到目前为止,我得到的代码如下所示:
CREATE OR REPLACE FUNCTION RESERVE_SEAT(P_NO VARCHAR2, ID NUMBER, RESERVE_TIME NUMBER, S_NO VARCHAR2)
RETURN INTEGER AS
RES INTEGER := 0;
COUNTS INTEGER := 0;
BEGIN
SELECT COUNT(*) INTO COUNTS FROM SEAT WHERE SEAT_NO=S_NO AND PLANE_NO=P_NO;
IF(COUNTS = 1) THEN
UPDATE SEAT
SET RESERVED = ID, BOOKING_TIME = RESERVE_TIME, BOOKED=ID
WHERE PLANE_NO=P_NO AND SEAT_NO=S_NO;
COMMIT;
ELSE IF(COUNTS = 0) THEN
RES := -1;
END IF;
END IF;
RETURN RES;
END RESERVE_SEAT;
Run Code Online (Sandbox Code Playgroud)
以上函数调用上述函数
CREATE OR REPLACE FUNCTION GET_FREE_SEAT(P_NO VARCHAR2, …Run Code Online (Sandbox Code Playgroud) 所以我String.Split()今天看了C#中的方法,我意识到你可以传递零参数,这是我从未考虑过的.
在Split()没有任何参数的情况下使用时,默认分隔符是什么?
我目前正在为一个项目进行一些人工智能研究,为此我必须习惯一个名为“Pytorch”的框架。这很好,但按照官方教程(在此处找到),代码无法正常运行。
我的想法是,我从准备好的数据集中分析一组面部特征,然后用它做一些事情(还没有到达那部分)。但是当我运行这段代码时:
img_name = os.path.join(self.root_dir, self.landmarks_frame.iloc([index, 0])) # At this point 'index' is 0
Run Code Online (Sandbox Code Playgroud)
数据集的初始化如下:
face_dataset = fDataset(csv_file='faces/face_landmarks.csv', root_dir='faces/')
Run Code Online (Sandbox Code Playgroud)
这是弹出错误的地方:
for i in range(len(face_dataset)):
sample = face_dataset[i] # <-- right there
Run Code Online (Sandbox Code Playgroud)
这就引出了 getter 函数:
def __getitem__(self, index):
img_name = os.path.join(self.root_dir, self.landmarks_frame.iloc([index, 0]))
image = io.imread(img_name)
landmarks = self.landmarks_frame.iloc[index, 1:].as_matrix()
landmarks = landmarks.astype('float').reshape(-1, 2)
sample = {'image': image, 'landmarks': landmarks}
Run Code Online (Sandbox Code Playgroud)
在我的课堂上发现FaceLandmarksDataset(Dataset):我只是得到了标题的错误。我觉得这很奇怪,因为我可以在 PyCharm 中将数据集作为框架读取:

第一张图片清晰可见。我还检查了它是否在我正在查找的文件夹中。
有人可以帮忙吗?:)
我试图通过使用SqlConnection和SqlCommand对象建立一个简单的MS Access数据库连接.
正如您在这里看到的,我是如何建立连接的:
private SqlConnection GetConnection()
{
String connStr = ConfigurationManager.ConnectionStrings[0].ConnectionString;
SqlConnection conn = new SqlConnection(connStr);
return conn;
}
Run Code Online (Sandbox Code Playgroud)
在你问之前,是的,我试图将这段代码移动到调用它的方法.没有改变什么.它仍然读取连接字符串错误.
连接字符串如下所示,位于App.config文件中:
<add name="ConnString" connectionString="Server=*.*.*.*;Database=familie;User Id=mfs;Password=********;"/>
Run Code Online (Sandbox Code Playgroud)
但是当我收到此错误时:

并查看当时的连接字符串对象,字符串如下所示:
"data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
Run Code Online (Sandbox Code Playgroud)
我花了大约2个小时试图完成这项工作,去许多不同的网站找出我做错了什么,但我得到的信息是太旧,冲突或处理连接到本地数据库,当这是实际上是通过我的客户提供给我的代理的外部访问(如果有人应该问,TrustGate)
调用的方法GetConnection()如下所示:
public Dictionary<int,String> GetPostNrList()
{
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand("Execute dbo.HENT_POST_NR_LISTE", conn);
var reader = cmd.ExecuteReader();
Dictionary<int, String> liste = new Dictionary<int, string>();
while (reader.NextResult())
{
int post_nr = (int) reader.GetSqlInt32(0);
String by = reader.GetString(1);
liste.Add(post_nr, …Run Code Online (Sandbox Code Playgroud)