我刚刚发现git checkout --orphan,但我不知道如何使用它.它的帮助页面说它创建了一个新的非专利分支.
在master分支中,我试过git checkout --orphan br,只是看到工作目录中的文件更改为"要提交的更改",以及git log说法fatal: bad default revision 'HEAD'.
那么使用的优势是 git checkout --orphan什么?
我有两个struct有相同的成员,我想将一个结构复制到另一个,请参阅下面的伪代码:
type Common struct {
Gender int
From string
To string
}
type Foo struct {
Id string
Name string
Extra Common
}
type Bar struct {
Id string
Name string
Extra Common
}
Run Code Online (Sandbox Code Playgroud)
然后,我有foo结构的Foo,而bar结构的Bar,有什么办法复制bar的foo?
我正在学习使用Railscast#206发送电子邮件.本教程使用Rails 3,但我使用的是Rails 4.
应用程序/邮寄/ user_mailer.rb:class UserMailer < ActionMailer::Base
default from: "ryan@railscast.com"
def registration_confirmation(user)
@user = user
mail(:to => "#{user.name}", :subject => "Registered")
end
end
Run Code Online (Sandbox Code Playgroud)
应用程序/视图/ user_mailer文件/ registration_confirmation.text.rb:
<%= @user.name %>,
Thank you for registering!
Edit profile: <%= edit_user_url(@user) %>
Run Code Online (Sandbox Code Playgroud)
app/views/user_mailer/registration_confirmation.html.rb:
<p><%= @user.name %>,</p>
<p>Thank you for registering!</p>
<p><%= link_to "Edit profile", edit_user_url(@user) %></p>
Run Code Online (Sandbox Code Playgroud)
应用程序/控制器/ users_controller.rb:
class UsersController < ApplicationController
......
def create
@user = User.new(user_params)
if @user.save
sign_in @user
flash[:success] = "Welcome"
UserMailer.registration_confirmation(@user).deliver
redirect_to @user
else
render …Run Code Online (Sandbox Code Playgroud) 我有一个Record结构和一个Map结构,如:
defmodule Foo.Bar do
defstruct boo: nil, baz: nil
end
defmodule Foo do
require Record
Record.defrecord :bar, Foo.Bar, [boo: nil, baz: nil]
end
Run Code Online (Sandbox Code Playgroud)
我可以像这样将Record转换为Map:
defp update_map({k, v}, map), do: Map.update!(map, k, fn(_) -> v end)
defp rd2map(rd) do
Foo.bar(rd) |> Enum.reduce(%Foo.Bar{}, &update_map/2)
end
Run Code Online (Sandbox Code Playgroud)
但是如何将地图转换为记录呢?
我想测试并行赋值的返回值,我写puts (x, y = 1, 2),但它不起作用,并打印错误消息:
SyntaxError: (irb):74: syntax error, unexpected ',', expecting ')'
puts (x,y =1,2)
^
(irb):74: syntax error, unexpected ')', expecting end-of-input
Run Code Online (Sandbox Code Playgroud)
有什么不对的吗?
我正在学习使用elixir lang开始的Elixir编程,而且我已经完成了record brace syntax.
这是样本:
defrecord FileInfo, atime: nil, accesses: 0
defmodule FileAccess do
def was_accessed?(FileInfo[accesses: 0]), do: false
def was_accessed?(FileInfo[]), do: true
end
Run Code Online (Sandbox Code Playgroud)
虽然作者认为Elixir在编译时将记录扩展为元组.所以
def was_accessed?(FileInfo[accesses: 0]), do: false
Run Code Online (Sandbox Code Playgroud)
是相同的:
def was_accessed?({ FileInfo, _, 0 }), do: false
Run Code Online (Sandbox Code Playgroud)
但是当我输入Elixir shell时:
iex(13)> FileInfo[access: 0] == {FileInfo, nil, 0}
true
iex(14)> FileInfo[access: 0] == {FileInfo, 0, 2}
false
Run Code Online (Sandbox Code Playgroud)
结果FileInfo[access: 0] 只是等于{FileInfo, nil, 0},
没有{ FileInfo, _, 0 }.
这两个场景有什么区别?
我想在Mac OS X中看到一些c标准库函数的mag页面,当我输入时man setsockopt,它返回到No manual entry for setsockopt.这是否意味着我没有为c标准安装手册页?我应该如何安装它?
我定义了一个与guide-started相关的环境变量,我的mix.exs是
defmodule Basic.Mixfile do
use Mix.Project
def project do
[app: :basic,
version: "0.0.1",
elixir: "~> 0.13.0-dev",
deps: deps,
env: [
dev: [foo: "bar"] ] ]
end
# Configuration for the OTP application
#
# Type `mix help compile.app` for more information
def application do
[ applications: [],
mod: { Basic, [] } ]
end
# List all dependencies in the format:
#
# { :foobar, git: "https://github.com/elixir-lang/foobar.git", tag: "0.1" }
#
# Type `mix help deps` …Run Code Online (Sandbox Code Playgroud) 我目前正在阅读编程 Erlang!,在第13章的最后,我们要创建一个keep-alive进程,示例如下:
on_exit(Pid, Fun) ->
spawn(fun() ->
Ref = monitor(process, Pid),
receive
{'DOWN', Ref, process, Pid, Info} ->
Fun(Info)
end
end).
keep_alive(Name, Fun) ->
register(Name, Pid = spawn(Fun)),
on_exit(Pid, fun(_Why) -> keep_alive(Name, Fun) end).
Run Code Online (Sandbox Code Playgroud)
但当之间register/2和on_exit/2过程可能退出,所以显示器会失败,我改变了keep_alive/2这样的:
keep_alive(Name, Fun) ->
{Pid, Ref} = spawn_monitor(Fun),
register(Name, Pid),
receive
{'DOWN', Ref, process, Pid, _Info} ->
keep_alive(Name, Fun)
end.
Run Code Online (Sandbox Code Playgroud)
还有一个错误,在spawn_monitor/2和之间register/2,进程可能会退出。这怎么可能成功运行?谢谢。
我想用来rsync将文件从服务器传输到我自己的电脑,但服务器端有一些空文件.我不需要那些文件,rsync这种情况下的命令是什么(传输所有文件除了空文件)?
我:cowboy在Elixir中使用Erlang Web框架,我收到了一个错误:cowboy_http_req.reply,这是我的代码:
mix.exs是:
defmodule Example.Mixfile do
use Mix.Project
def project do
[ app: :example,
version: "0.0.1",
deps: deps ]
end
# Configuration for the OTP application
def application do
[
# you should start :inets and :crypto first, or it will not start cowboy
applications: [:inets, :crypto],
mod: {Example, []}
]
end
# Returns the list of dependencies in the format:
# { :foobar, "0.1", git: "https://github.com/elixir-lang/foobar.git" }
defp deps do
[
{ :cowboy, github: …Run Code Online (Sandbox Code Playgroud) 我有两个正则表达式,一个是^0|[1-9][0-9]*$,另一个是^(0|[1-9][0-9]*),第一个表达式匹配字符串"01",而后一个表达式不匹配.两个表达的区别是什么?在我看来,后者只捕获匹配的字符串.我想知道为什么后来不能匹配"01"字符串.