Golang程序  |  24行  |  484 B

// run

// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import "runtime"

func main() {
	var file string
	var line int
	func() {
		defer func() {
			_, file, line, _ = runtime.Caller(1)
		}()
	}() // this is the expected line
	const EXPECTED = 18
	if line != EXPECTED {
		println("Expected line =", EXPECTED, "but got line =", line, "and file =", file)
	}
}