To jest binstub rspec
w moim katalogu projektu.Co robi komentarz "frozen_string_literal: true"?
#!/usr/bin/env ruby
begin
load File.expand_path("../spring", __FILE__)
rescue LoadError
end
# frozen_string_literal: true
#
# This file was generated by Bundler.
#
# The application 'rspec' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require "pathname"
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
Pathname.new(__FILE__).realpath)
require "rubygems"
require "bundler/setup"
load Gem.bin_path("rspec-core", "rspec")
Co to ma zrobić?
# frozen_string_literal: true
Ważną rzeczą, którą należy zauważyć, jeśli chodzi o zamrażanie ciągów jest to, że [poprawia wydajność aplikacji] (https://bugs.ruby-lang.org/issues/8976#note-30). Zobacz także [tutaj] (https://blog.lucascaton.com.br/2016/01/19/what-is-frozen_string_literal-in-ruby/) –
@ dave-schweisguth Nie powinniśmy spodziewać się '-" foo " "być tym samym, co' "foo" .freeze'? Kiedy sprawdzam '(-" foo ") .__ id__' Za każdym razem otrzymuję inną wartość, ale' 'foo" .freeze .__ id__' jest za każdym razem takie samo. Jakieś pomysły? – lilole
Zastanawiam się, czy ta funkcja jest problemem, wydaje się, że jest ona wywoływana tylko z jednoargumentowym minusem. https://github.com/ruby/ruby/blob/trunk/string.c#L2572 – lilole