我正在从Java代码生成Perl代码,并尝试模拟该try catch机制。我不能使用外部库。我发现了两种可能的方法来模拟这种行为:
第一:
eval {
...
};
if ($@) {
errorHandler($@);
}
Run Code Online (Sandbox Code Playgroud)
第二:
unless(.....){
// handle the error
}
Run Code Online (Sandbox Code Playgroud)
我对Perl的了解很少。据我了解,第一种解决方案使我能够执行多个命令,而第二种解决方案使我只能执行一个命令。但是,我也看到不建议使用eval。
什么是正确的方式?
我有一个客户端和一个服务器应用程序。当客户端要发送文件时,我正在使用TCP连接。当我为连接使用恒定端口号时,它可以工作(服务器接收文件)。
我想使用随机端口,因此尝试将端口设置为0。
我的代码是:
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = 0;
if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
cout << "failed to bind with errno: "<< errno << endl;
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
绑定有效,但使用端口0而不是预期的随机端口。
我究竟做错了什么?
考虑以下参数:
char words[8] = "one two";
string word1;
string word2;
stringstream ss;
Run Code Online (Sandbox Code Playgroud)
这段代码的输出:
ss << strtok(words, " ");
ss >> word1;
ss << strtok(NULL, " ");
ss >> word2;
cout << "Words: " << word1 << " " << word2 << endl;
Run Code Online (Sandbox Code Playgroud)
是:
Words: one
Run Code Online (Sandbox Code Playgroud)
而对于这段代码
ss << strtok(words, " ");
ss >> word1;
char* temp = strtok(NULL, " ");
word2 = temp;
cout << "Words: " << word1 << " " << word2 << endl;
Run Code Online (Sandbox Code Playgroud)
输出是:
Words: one two …Run Code Online (Sandbox Code Playgroud) O.伙计们.我有一个顶级应用程序,我正在使用Jquery手机主题,但基本上我有一些列表项目,我需要在我的屏幕上显示,但我的屏幕是一个手持设备,它有小屏幕尺寸,所以当我显示列表项目的大小太大了,我想减小字体大小.在我的apex html页面中,我得到了一个"CSS内联"部分,实际上得到了一些代码,如下所示,我减少了文本和数字字段的字体大小,但我不知道如何减少列表项的字体大小,我想这很容易,但实际上我是新的html和CSS的东西..
提前致谢.
input[type="text"] {font-size:8px}
input[type="number"] {font-size:8px}
Run Code Online (Sandbox Code Playgroud) 我已经开始使用一种技术来处理前端设计中的垂直间距,该技术使用透明<hr>的间距元素.我知道这归咎于大多数网络社区的仇恨,但我仍然认为这是处理特殊情况的好方法.以下是好处:
<hr> 是一个自动关闭的标签,所以它在标记上很友好<hr>只占空间的不可见不会反对元素的语义.我非常清楚标记和样式之间需要分离.然而,在响应式设计中,元素之间的垂直间距有时是繁琐的,并且在我看来,它通常比语义标记具有更高的价格.
一种常见的方法是使用手动样式处理特殊情况:当基于组件的类(如.my-special-recurring-element不够精确)(假设这个特定的类太靠近它下面的元素)时,请#special-element-that-requires-spacing手动添加id 并设置样式,这样就变成了很难维护:
/* Ensure that the special element is not too close to the footer in mobile */
#special-element-that-requires-spacing {
margin-bottom: 1rem;
}
@media screen and (min-width: 640px) {
#special-element-that-requires-spacing {
margin-bottom: 0;
}
}
Run Code Online (Sandbox Code Playgroud)
这就是为什么像Tachyons和Basscss这样的CSS实用工具包近年来变得越来越流行的原因.它允许使用内联类调整垂直间距,并具有直接响应处理的附加好处.我们现在可以像这样编写我们的HTML(Tachyons中的例子):
<div class="my-special-recurring-element mb1 mb0-ns"></div>
Run Code Online (Sandbox Code Playgroud)
其中.mb1粗略意味着在我们的尺寸范围内应用1的边距底部,并且mb0-ns意味着在非小视口宽度中应用边距为零的底部.这对于前端设计来说肯定更实用,但它经常变得杂乱无章 - …