我刚刚开始使用Scala,我刚学会了如何使方法成为正确关联(而不是在命令式面向对象语言中常见的更传统的左关联性).
首先,当我cons在Scala中看到列表的示例代码时,我注意到每个示例总是在右侧有List:
println(1 :: List(2, 3, 4))
newList = 42 :: originalList
Run Code Online (Sandbox Code Playgroud)
然而,即使在一遍又一遍地看到这一点之后,我也没有三思而后行,因为我不知道(当时)这::是一种方法List.我只是假设它是一个运算符(再次,在Java中的运算符意义上),并且关联性并不重要.List在示例代码中始终出现在右侧的事实似乎巧合(我认为它可能只是"首选样式").
现在我知道的更好:它必须以这种方式编写,因为它::是正确联想的.
我的问题是,能够定义右关联方法的重点是什么?
这纯粹是出于审美原因,还是在某些情况下,权利关联实际上可以带来某些与左联结相关的好处?
从我(新手)的角度来看,我真的不知道如何
1 :: myList
Run Code Online (Sandbox Code Playgroud)
比任何更好
myList :: 1
Run Code Online (Sandbox Code Playgroud)
但这显然是一个微不足道的例子,我怀疑这是一个公平的比较.
我现在是一名心理学辅修的计算机科学专业的学生.在软件设计方面我有编程,但与UI的设计不同.用于学习用户界面和/或网站设计原则的一些好书/网站/博客是什么?
给定一个托管的COM对象和一个关联的tlb文件,我想从一些非托管的C++代码访问它而不使用TLB/import命令.但是使用头文件.
有没有办法从TLB中提取头文件?
谢谢
我在这里看到很多关于套接字的资源.我相信他们都没有涵盖我想知道的细节.在我的应用程序中,服务器执行所有处理并向客户端发送定期更新.
本文的目的是涵盖开发套接字应用程序和讨论最佳实践时所需的所有基本思想.以下是几乎所有基于套接字的应用程序都会看到的基本内容.
1 - 绑定和侦听套接字
我使用以下代码.它在我的机器上运行良好.在真实服务器上部署时,是否需要注意其他事项?
IPHostEntry localHost = Dns.GetHostEntry(Dns.GetHostName());
IPEndPoint endPoint = new IPEndPoint(localHost.AddressList[0], 4444);
serverSocket = new Socket(endPoint.AddressFamily, SocketType.Stream,
ProtocolType.Tcp);
serverSocket.Bind(endPoint);
serverSocket.Listen(10);
Run Code Online (Sandbox Code Playgroud)
2 - 接收数据
我使用了255个大小的字节数组.因此,当我收到超过255个字节的数据时,我需要调用receive方法,直到获得完整数据,对吧?获得完整数据后,我需要追加到目前为止收到的所有字节以获取完整的消息.那是对的吗?还是有更好的方法?
3 - 发送数据并指定数据长度
由于TCP无法找到要接收的消息长度,因此我计划在消息中添加长度.这将是数据包的第一个字节.因此客户端系统知道有多少数据可供读取.
还有其他更好的方法?
4 - 关闭客户端
当客户端关闭时,它将向服务器发送一条消息,指示关闭.服务器将从其客户端列表中删除客户端详细信息.以下是客户端用于断开套接字的代码(消息传递部分未显示).
client.Shutdown(SocketShutdown.Both);
client.Close();
Run Code Online (Sandbox Code Playgroud)
有什么建议或问题吗?
5 - 关闭服务器
服务器向所有客户端发送消息,指示关闭.每个客户端在收到此消息时将断开套接字.客户端将关闭消息发送到服务器并关闭.一旦服务器收到来自所有客户端的关闭消息,它将断开套接字并停止监听.在每个客户端套接字上调用Dispose以释放资源.这是正确的方法吗?
6 - 未知客户端断开连接
有时,客户端可能会断开连接而不通知服务器.我的处理方法是:当服务器向所有客户端发送消息时,检查套接字状态.如果未连接,请从客户端列表中删除该客户端并关闭该客户端的套接字.
任何帮助都会很棒!
我正处于ASP.NET MVC项目的中间,最近安装了ReSharper 4.5 的免费试用版.我立刻意识到了这些好处,仅仅是因为它希望我做的重构.
像反转if语句以减少嵌套,更改我的if/将else语句返回到?/ ??运算符的语句- 大大减少了我的应用程序中的代码行数.
从单击执行空引用检查的功能,删除未使用的指令/变量或删除冗余代码(在不需要时调用.ToString()).或者,它可以看到我的视图让我知道我正在访问一个不再存在的属性,使得解决方案范围内的重命名更加彻底......真的可以节省大量时间.
但我觉得我只是看到了冰山一角.所以我问这个:
您使用ReSharper 做什么用途?除了我上面描述的直接好处之外还有什么?
我正在通过Stephen Kochan的"在Objective-C 2.0中编程"来教自己Objective-C这是一本很棒的书,目前正在第二次读它,我第一次得到它的要点,现在它真的开始了第二次下沉.
如果你对Objective-C有中等(大约)的了解,那么学习C有多难?我意识到关于首先学习哪种语言似乎存在着无休止的争论.我决定选择Objective-C,因为我对Cocoa Mac Apps/iPhone应用感兴趣.
旁注:对于那些熟悉Chipmunk物理引擎的人......我最终开始追求C的原因是它使用C.我需要知道多少C才能充分利用它.我打算将它与使用Objective-C的Cocos2d一起使用
在Clojure/Lisp中评估double和#'double有什么区别?
1:2 user=> double
#<core$double__4077 clojure.core$double__4077@1acd47>
1:3 user=> #'double
#'clojure.core/double
Run Code Online (Sandbox Code Playgroud) 在阅读本文以及一些示例后,我仍然不清楚全局变量的含义.那么它说你班上的私有变量是全局变量?
http://www.c2.com/cgi/wiki?GlobalVariablesAreBad
所以有人可以用简单的语言向我解释这个背景.这是否意味着甚至是班级顶层的私人领域?我不清楚"全局变量"的定义,以便我可以区分我是否在我的课程中做了"坏"的事情.
我在一个对象中有一些属性,我想添加到全局命名空间.在浏览器的javascript中,我可以将其添加到window对象中,如下所示:
var myObject = {
foo : function() {
alert("hi");
}
// and many more properties
};
for (property in myObject) {
window[property] = myObject[property];
}
// now I can just call foo()
foo();
Run Code Online (Sandbox Code Playgroud)
但由于rhino没有全局窗口对象,我无法做到这一点.有没有一个等效的对象或其他方式来实现这一目标?
我想这个问题已被问到很多.我知道Rails可以扩展,因为我已经完成了它并且它很棒.就PHP框架而言,对此毫无疑问.
我不想知道哪个框架更好.
假设一个大型应用程序每月访问量达到100万次,那么扩展Rails与其他框架(PHP,Python)的成本差异有多大?
这是我经常被问到的事情.我可以向人们解释"Rails确实很好地扩展",但从长远来看,经济学是什么?
如果有人可以提供一些指标,那就太好了.
c# ×3
.net ×2
asp.net-mvc ×1
automation ×1
c ×1
c++ ×1
clojure ×1
com ×1
javascript ×1
lisp ×1
objective-c ×1
operators ×1
php ×1
python ×1
refactoring ×1
resharper ×1
rhino ×1
scala ×1
scaling ×1
sockets ×1